C# “未知列”;“什么?”;在';其中第'条;

C# “未知列”;“什么?”;在';其中第'条;,c#,C#,我的问题总是悬而未决。请帮我找出问题所在。谢谢 MySqlConnection cnn = new MySqlConnection(mysqladdress); cnn.Open(); try { MySqlCommand cmd = new MySqlCommand(); cmd.Connection = cnn; cmd.CommandText = "SELECT * FROM info where StudentID ='" + textBox1.Text +

我的问题总是悬而未决。请帮我找出问题所在。谢谢

MySqlConnection cnn = new MySqlConnection(mysqladdress);

cnn.Open();

try
{
    MySqlCommand cmd = new MySqlCommand();
    cmd.Connection = cnn;
    cmd.CommandText = "SELECT * FROM info where StudentID ='" + textBox1.Text + "'and Name='" + textBox2.Text + "'";
    MySqlDataReader reader = cmd.ExecuteReader();

    int count = 0;
    while (reader.Read())
    {
        count = count + 1;
    }

    if (count == 1)
    {
        MessageBox.Show("Welcome");
    }
    else if (count > 1)
    {
        MessageBox.Show("Access Denied");
    }
    else
    {
        MessageBox.Show("Wrong student ID and Password");
    }

}
catch (Exception)
{
    throw;
}

这一定是一个打字错误或一些简单的东西,如果不知道确切的错误信息,很难判断

为避免此类错误,我建议您使用参数:

cmd.CommandText = "SELECT * FROM info where StudentID = @StudentID and Name= @Name";
cmd.Parameters.Add("@StudentID", SqlDbType.VarChar).Value = textBox1.Text;
cmd.Parameters.Add("@Name", SqlDbType.VarChar).Value = textBox2.Text;

请读一下:大卫说了什么。另外,.NET特定的:您需要在单个引号和“and”之间留出一个空格,以便将其作为打字错误关闭error@w0lf或者更好: