即使我输入了正确的用户凭证,也会显示无效的用户凭证。我不知道我是否使参数错误或者如果我的查询错误。我想了解参数化查询,但我不知道我在这里做错了什么。MySQL参数化查询中的用户凭证无效
con.OpenConnection();
using (con.connection)
{
String query = "SELECT * FROM tblUser WHERE Username = @Username and Password = @Password";
try
{
MySqlCommand cmd = new MySqlCommand(query, con.connection);
cmd.Parameters.Add("@Username", MySqlDbType.VarChar).Value = txtUsername.Text;
cmd.Parameters.Add("@Password", MySqlDbType.VarChar).Value = txtPassword.Text;
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
MySqlDataAdapter da = new MySqlDataAdapter(cmd);
da.Fill(dt);
i = Convert.ToInt32(dt.Rows.Count.ToString());
if (i == 0)
{
MessageBox.Show("Invalid user credentials.");
}
else
{
//Do stuff
}
}
catch (MySqlException mse)
{
MessageBox.Show(mse.Message);
}
finally
{
con.CloseConnection();
}
你能分享你所得到的异常信息? – hbulens
其中是'i'定义..也是一个字符串或整数.. 'i = Convert.ToInt32(dt.Rows.Count.ToString());' 如果我是一个整数,那么你不需要做转换只需设置i =这样的计数 'var i = dt.Rows.Count;' – MethodMan
@hbulens我没有收到异常消息。我认为用我写的代码if语句返回true,因为它不符合参数。我无法确定。 – Alpha