C# MySQL数据读取器未读取
我试图从数据库中获取数据并显示在messagebox中,但它不起作用。我试图在while循环中放入一个虚拟messagebox,但代码似乎也没有进入其中。有没有办法做到这一点 这是我的代码:C# MySQL数据读取器未读取,c#,mysql,C#,Mysql,我试图从数据库中获取数据并显示在messagebox中,但它不起作用。我试图在while循环中放入一个虚拟messagebox,但代码似乎也没有进入其中。有没有办法做到这一点 这是我的代码: ConnectToDatabase(); MySqlCommand cmd = new MySqlCommand("Select Name, LPN From visitors Where password = '@password';", conn); cmd.Parameters.AddWith
ConnectToDatabase();
MySqlCommand cmd = new MySqlCommand("Select Name, LPN From visitors Where password = '@password';", conn);
cmd.Parameters.AddWithValue("@password", decodeStr);
MySqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
MessageBox.Show("he");
name = reader["Name"].ToString();
lpn = reader["LPN"].ToString();
}
您需要删除
“@password”
部分中的单引号。对于单引号,数据库管理器认为这是一个参数,而不是一个参数
这就是为什么您的阅读器没有任何数据,因为您的密码列可能没有任何字符串作为@password
还有几件事
- 用于自动处理连接、命令和读卡器
- 不要使用
方法。使用AddWithValue
方法重载指定参数类型及其大小Add
和Name
在MySQL中。它必须引用为'Name'和'password'。我知道它们的大小写不匹配,但据我所知,MySQL并不关心它们的大小写默认保留字password
'@password'
部分中的单引号。对于单引号,数据库管理器认为这是一个参数,而不是一个参数
这就是为什么您的阅读器没有任何数据,因为您的密码列可能没有任何字符串作为@password
还有几件事
- 用于自动处理连接、命令和读卡器
- 不要使用
方法。使用AddWithValue
方法重载指定参数类型及其大小Add
和Name
在MySQL中。它必须引用为'Name'和'password'。我知道它们的大小写不匹配,但据我所知,MySQL并不关心它们的大小写默认保留字password
cmd.Parameters.AddWithValue(“@password”,decodeStr)
没有@
?@Stefan-不,@
是有效的@Stefan以前我用过它,我想你应该删除“@password”中的单引号。正确的SQL语句:Select Name,LPN From visitors,其中password=@password
不确定,但不应cmd.Parameters.AddWithValue(“@password”,decodeStr)
没有@
?@Stefan-不,@
是有效的@Stefan以前我用过它,我想你应该删除“@password”中的单引号。正确的SQL语句:Select Name,LPN From visitors,其中password=@password代码>