Ik ben een beetje aan het stoeien met C# en MySQL.
Dit lukt vrij aardig alleen om de een of andere reden doet mijn query het niet meer waar dit eerst wel het geval was.
Als ik de query door de MySQL Query Browser haal doet hij het perfect mits ik voor "?id" uiteraard zelf even een geldige waarde invul.
In mijn applicatie selecteert hij echter wel netjes alle kolommen maar hier staan verder geen gegevens in.
Dit is zeg maar hetzelfde resultaat als dat ik de query uitvoer zonder een geldige waarde voor het id.
Theoretisch resultaat bij een ?id van 3:
Uiteindelijke resultaat bij een ?id van 3:
De dataset bind ik op de volgende manier aan een datagrid view:
Ik gebruik de het de bovenstaande code ook om een combobox te vullen en dit gaat wel gewoon goed:
Dit gaat gewoon goed maar zoals iedereen wel ziet zitten hier geen parameters in.
Ik heb het zeker wel werkend gehad met daarbij ook de update en delete commando's

Kan iemand mij vertellen waarom het nu fout gaat?
En hoe kan ik controlleren welke query uiteindelijk naar de database gaat?
Als er meer code nodig is hoor ik het wel.
Dit lukt vrij aardig alleen om de een of andere reden doet mijn query het niet meer waar dit eerst wel het geval was.
Als ik de query door de MySQL Query Browser haal doet hij het perfect mits ik voor "?id" uiteraard zelf even een geldige waarde invul.
In mijn applicatie selecteert hij echter wel netjes alle kolommen maar hier staan verder geen gegevens in.
Dit is zeg maar hetzelfde resultaat als dat ik de query uitvoer zonder een geldige waarde voor het id.
C#:
1
2
3
4
5
6
7
8
9
| public static void CreateSqlDataAdapter(string naam, int id) { dataAdapter1.MissingSchemaAction = MissingSchemaAction.AddWithKey; dataAdapter1.SelectCommand = new MySqlCommand("SELECT * FROM `users` WHERE `users`.`users_id`=?id;", connection); dataAdapter1.SelectCommand.Parameters.Add("?id", MySqlDbType.UInt32, id); dataAdapter1.Fill(dataSet, "Gegevens"); return; } |
Theoretisch resultaat bij een ?id van 3:
code:
1
2
3
4
5
6
7
| mysql> SELECT * FROM `urenprog`.`users` WHERE `users_id`=3; +----------+--------------------+------------+ | users_id | name | birthday | +----------+--------------------+------------+ | 3 | sdfsasdasdasddfsdf | 2009-05-20 | +----------+--------------------+------------+ 1 row in set (0.00 sec) |
Uiteindelijke resultaat bij een ?id van 3:
code:
1
2
3
| +----------+--------------------+------------+ | users_id | name | birthday | +----------+--------------------+------------+ |
De dataset bind ik op de volgende manier aan een datagrid view:
C#:
1
2
3
| dataGridView1.AutoGenerateColumns = true; dataGridView1.DataSource = Database.dataSet; dataGridView1.DataMember = "Gegevens"; |
Ik gebruik de het de bovenstaande code ook om een combobox te vullen en dit gaat wel gewoon goed:
C#:
1
2
3
4
| dataAdapter2 = new MySqlDataAdapter(); dataAdapter2.MissingSchemaAction = MissingSchemaAction.AddWithKey; dataAdapter2.SelectCommand = new MySqlCommand("SELECT `u`.`users_id`, `u`.`name` FROM users u;", connection); dataAdapter2.Fill(dataSet, "Names"); |
Dit gaat gewoon goed maar zoals iedereen wel ziet zitten hier geen parameters in.
Ik heb het zeker wel werkend gehad met daarbij ook de update en delete commando's

Kan iemand mij vertellen waarom het nu fout gaat?
En hoe kan ik controlleren welke query uiteindelijk naar de database gaat?
Als er meer code nodig is hoor ik het wel.
[ Voor 14% gewijzigd door Gehakt op 13-06-2008 01:57 ]