C# MySqlCommand().ExecuteReader().GetString()不起作用
我正在用C语言处理MySql。 我正试图从我的数据库中获取一些数据。 字段的组织方式如下:C# MySqlCommand().ExecuteReader().GetString()不起作用,c#,mysql,C#,Mysql,我正在用C语言处理MySql。 我正试图从我的数据库中获取一些数据。 字段的组织方式如下: foo baa 38737 22222 如果我的哈希值等于baa 我试过这个: 我的代码(不工作) 我得到以下错误: Invalid attempt to access a field before calling Read() 有人能指出我的错误吗? 提前感谢。您缺少一个阅读器。Read()呼叫: MySqlDataReader reader = cmd.ExecuteReader();
foo baa
38737 22222
如果我的哈希值等于baa
我试过这个:
我的代码(不工作)
我得到以下错误:
Invalid attempt to access a field before calling Read()
有人能指出我的错误吗?
提前感谢。您缺少一个
阅读器。Read()
呼叫:
MySqlDataReader reader = cmd.ExecuteReader();
while(reader.Read())
{
String res = reader.GetString(0);
//...
}
尝试:
如果将SQL命令更改为返回单个值,例如:
"SELECT foo FROM info WHERE baa = '{0}' LIMIT 1"
然后还可以使用cmd.ExecuteScalar()
:
还应该指出,此方法使您面临SQL注入攻击。请参阅小bobby表。散列不是用户的输入
string res;
using(MySqlDataReader reader = cmd.ExecuteReader())
{
if(reader.Read())
res = reader.GetString(0);
else
res = "not found";
}
"SELECT foo FROM info WHERE baa = '{0}' LIMIT 1"
string res = cmd.ExecuteScalar().ToString();