有人可以帮我解决这个问题...我只是无法找到错误的位置...因为即使我输入正确的用户名和密码,弹出一条消息说明指定的演员无效
if (user_txt.Text != "" & pass_txt.Text != "")
{
string queryText = "SELECT Count(*) FROM stiguidancesample.users " + "WHERE username = @Username AND password = @Password";
MySqlConnection cn = new MySqlConnection(MyConnectionString);
MySqlCommand cmd = new MySqlCommand(queryText, cn);
{
cn.Open();
cmd.Parameters.AddWithValue("@Username", user_txt.Text); // cmd is SqlCommand
cmd.Parameters.AddWithValue("@Password", pass_txt.Text);
int result = (int)cmd.ExecuteScalar();
if (result > 0)
MessageBox.Show("Loggen In!");
else
MessageBox.Show("User Not Found!");
}
}
答案 0 :(得分:5)
问题:嘿,您需要记住使用以下语句执行隐式转换:
int result = (int) cmd.ExecuteScalar();
隐式转换仅在值为有效整数时有效。如果它包含类似10.0的值或某些空格则不起作用。
解决方案:如果您想获得需要使用的所有内容的值
使用Convert.ToInt32()
方法显式投射。
试试这个:
int result = Convert.ToInt32(cmd.ExecuteScalar());