Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/mysql/63.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MySqlCommand().ExecuteReader().GetString()不起作用_C#_Mysql - Fatal编程技术网

C# MySqlCommand().ExecuteReader().GetString()不起作用

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();

我正在用C语言处理MySql。 我正试图从我的数据库中获取一些数据。 字段的组织方式如下:

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();