DataReader没有返回值?

时间:2012-03-29 02:37:33

标签: c# mysql

我在C#编写了一个程序,我希望从MySQL数据库中获取一个值。

我的代码是:

MySqlCommand queryReqYear =
      new MySqlCommand(@"SELECT req_year FROM subjects_offered
                         WHERE subj_code= @subj", connectToDB.connection);


queryReqYear.Parameters.AddWithValue("@subj", viewStudents_subj.SelectedValue);

然后我使用DataReader

MySqlDataReader reader;
reader = queryReqYear.ExecuteReader();

然后我试着获得价值:

while (reader.Read())
    { MessageBox.Show(reader.GetString(0)); }

我想要获得的字段的值为 3 。我正在尝试显示该值,但是当我执行该事件时,没有任何反应。

修改

好的,我通过将SelectedValue更改为SelectedItem

来解决了这个问题

4 个答案:

答案 0 :(得分:1)

尝试Text属性:

queryReqYear.Parameters.AddWithValue("@subj", viewStudents_subj.Text);

答案 1 :(得分:0)

尝试在sql语句中使用单引号括起来。

MySqlCommand queryReqYear =
  new MySqlCommand(@"SELECT req_year FROM subjects_offered
                     WHERE subj_code= 'blah'", connectToDB.connection);

答案 2 :(得分:0)

你没有得到任何例外,只是没有结果?

您可能希望测试将其放入变量,然后进行代码中断,例如:

string testValue = reader.GetString(0);
Console.WriteLine(testValue);

此外,您应该在SQL客户端中测试SQL代码,看看是否在那里获得了正确的结果。我怀疑你的SQL是问题,而不是c#代码。

答案 3 :(得分:0)

好的,我通过将SelectedValue更改为SelectedItem

来解决了这个问题