Ich schrieb ein Programm in C#, wo ich einen Wert von einer MySQL Datenbank bekommen wollte.DataReader gibt keinen Wert zurück?
Mein Code ist:
MySqlCommand queryReqYear =
new MySqlCommand(@"SELECT req_year FROM subjects_offered
WHERE subj_code= @subj", connectToDB.connection);
queryReqYear.Parameters.AddWithValue("@subj", viewStudents_subj.SelectedValue);
Dann benutze ich Datareader
MySqlDataReader reader;
reader = queryReqYear.ExecuteReader();
Und dann versuche ich, den Wert zu erhalten:
while (reader.Read())
{ MessageBox.Show(reader.GetString(0)); }
Das Feld Ich versuche zu bekommen hat einen Wert von . Ich versuche, diesen Wert anzuzeigen, aber wenn ich das Ereignis ausführe, passiert nichts.
EDIT
Okay, ich löste das Problem, indem SelectedValue
-SelectedItem
Ändern Wenn nichts reader.Read geschieht dann() ist wahrscheinlich falsch zurückkehrt, weil die Ergebnismenge leer ist. Wo setzt du den Wert von '@ subj'? Worauf stellen Sie es ein? – rsbarro
Das ist von Benutzereingabe. queryReqYear.Parameters.AddWithValue ("@subj", viewStudents_subj.SelectedValue); Ich kann Ihnen versichern, dass das Feld, das ich abfrage, NICHT leer ist. Es hat einen Wert von 3. – Nath
Gibt 'reader.Read()' '' '' '' '' '' zurück? Wenn es "false" zurückgibt, gibt Ihre Abfrage keine Datensätze zurück. Ich habe auch nicht gesagt, dass das Feld leer war, ich sagte, das Ergebnis ist leer. – rsbarro