我想检查给定的记录是否在数据库中。显示错误“列名无效”
private void SaveButton_Click(object sender, EventArgs e)
{
SqlConnection conn = new SqlConnection("Data Source=PC308433;Initial Catalog=SampleDatabase;Persist Security Info=True;User ID=sa;Password=adm23");
conn.Open();
SqlCommand sc = new SqlCommand("select USERNAME from QuizTable where USERNAME=" + UserNameTextbox.Text + "", conn);
string result =Convert.ToString(sc.ExecuteNonQuery());//I dont know to store the result of query here.Pls help me
if (result == UserNameTextbox.Text)
MessageBox.Show("Welcome");
else
MessageBox.Show("Please register");
conn.Close();
}
最佳答案
您必须对它使用ExecuteReader()
,ExecuteNonQuery()
仅用于insert、update和delete语句,并使用contractor,它使用CommandBehaviourenum和SingleRow
,因为每个用户名应有一行:
SqlDataReader rdr = sc.ExecuteReader(CommandBehavior.SingleRow);
if(rdr.Read() && (rdr["USERNAME"].ToString() == UserNameTextbox.Text))
MessageBox.Show("Welcome");
}
旁注:
您应该使用parameterized queries,目前您已打开sql injection。
关于c# - 我想检查给定的记录是否在数据库中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/31578700/