想发送Select MySqlCommand查询,但是AddWithValue()方法没有为给定参数分配其值。因此,我无法从数据库中获取正确的数据。
我已经尝试将@符号更改为吗? 我也尝试过Command.Parameters.AddWithValue(“ param1”,textbox1.text); 我删除了所有不必要的撇号。 我试图在分配参数前后准备命令。
#define debug
Database_Interface db = new Database_Handler();
public string GetIDFromDB(string user)
{
using(MySqlConnection conn = db.Connection)
{
db.OpenConnection(conn);
string sql = "SELECT ID FROM Users WHERE USERNAME = @User";
using (MySqlCommand cmd = new MySqlCommand(sql,conn))
{
cmd.Parameters.AddWithValue("@User", user);
cmd.Prepare();
#if debug
return cmd.CommandText;
#endif
MySqlDataReader rdr = cmd.ExecuteReader();
db.Connection.Close();
if (rdr.HasRows)
{
rdr.Read();
return rdr.GetString("ID");
}
else
return "inv_user";
}
}
}
调试返回的结果是相同的sql,实际上没有分配任何参数。但是,当我尝试执行此操作时,最基本的方法是将用户var放入sql内,它应该可以正常工作。唯一的问题是AddWithValue()。