我想检查给定的记录是否在数据库中。它显示错误“无效的列名”
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()
仅适用于插入、更新和删除语句,并使用采用 CommandBehaviour 的构造函数使用 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/