Omschrijving:
Ik heb een windowsform met daarop 2 objecten: combobox en een datagridview.
De datagridview geeft data weer uit een database. De combobox gebruik ik om deze data te filteren. Ik heb gekozen om dit te doen aan de hand van SQL.
Mijn werkwijze is dat wanneer de waarde van de combobox wijzigt, ik een nieuwe dataAdapter maak om de nieuwe gegegevens (gefilterde gegevens) uit de database te halen. Dit werk zonder problemen.
Vraag:
Kan ik dit doen zonder een nieuwe dataAdapter te maken en door gewoon de commandtext van de reeds bestaande dataAdapter te wijzigen? Ik probeerde dit op de volgende manier, maar dit werkt niet. De datagridview wordt opnieuw gevuld met beginwaarden (ongefilterde gegevens). M.a.w. de commandtext is niet aangepast, en de gegevens worden weer opgehaald aan de hand van de SQLcommand die tijdens designtime aan de dataAdapter werd toegekend.
dataset.tabel.clear()
sql as string = "SELECT .....
dataAdapter.connection.connectionstring.createcommand.commandtext = sql
dataAdapter.fill(dataset.tabel)
In een boek heb ik volgende manier teruggevonden:
dataset.tabel.clear()
OleDbSelectCommand.CommandText = sql
OleDbDataAdapter.Fill(dataset.tabel)
Wat ik me hier afvraag. Hoe kennen ze die command toe aan de dataAdapter? Hoe weet de dataAdapter dat deze nieuwe command voor hem is bedoeld en dat hij deze nu moet gebruiken? Er wordt geen enkele link gegeven tss command en dataAdapter.
Ik heb een windowsform met daarop 2 objecten: combobox en een datagridview.
De datagridview geeft data weer uit een database. De combobox gebruik ik om deze data te filteren. Ik heb gekozen om dit te doen aan de hand van SQL.
Mijn werkwijze is dat wanneer de waarde van de combobox wijzigt, ik een nieuwe dataAdapter maak om de nieuwe gegegevens (gefilterde gegevens) uit de database te halen. Dit werk zonder problemen.
Vraag:
Kan ik dit doen zonder een nieuwe dataAdapter te maken en door gewoon de commandtext van de reeds bestaande dataAdapter te wijzigen? Ik probeerde dit op de volgende manier, maar dit werkt niet. De datagridview wordt opnieuw gevuld met beginwaarden (ongefilterde gegevens). M.a.w. de commandtext is niet aangepast, en de gegevens worden weer opgehaald aan de hand van de SQLcommand die tijdens designtime aan de dataAdapter werd toegekend.
dataset.tabel.clear()
sql as string = "SELECT .....
dataAdapter.connection.connectionstring.createcommand.commandtext = sql
dataAdapter.fill(dataset.tabel)
In een boek heb ik volgende manier teruggevonden:
dataset.tabel.clear()
OleDbSelectCommand.CommandText = sql
OleDbDataAdapter.Fill(dataset.tabel)
Wat ik me hier afvraag. Hoe kennen ze die command toe aan de dataAdapter? Hoe weet de dataAdapter dat deze nieuwe command voor hem is bedoeld en dat hij deze nu moet gebruiken? Er wordt geen enkele link gegeven tss command en dataAdapter.