C# 如何检查SQL数据库中是否已经存在该记录?
我试图检查该值是否存在于数据库列中。我知道这个问题被问了好几次,但没有一次能解决我的问题。我在很多方面都试过了。反正我下面的代码通过了一个异常 中发生“System.ArgumentException”类型的未处理异常 System.Data.dll其他信息:中不存在映射 对象类型System.Windows.Forms.TextBox到已知的托管提供程序 本机类型。” 这个问题解决了,但有一个例外,那是一个错误。但它仍然不工作,虽然记录在数据库中,但它并没有限制我 有人能告诉我我的代码有什么问题吗C# 如何检查SQL数据库中是否已经存在该记录?,c#,sql,sql-server,C#,Sql,Sql Server,我试图检查该值是否存在于数据库列中。我知道这个问题被问了好几次,但没有一次能解决我的问题。我在很多方面都试过了。反正我下面的代码通过了一个异常 中发生“System.ArgumentException”类型的未处理异常 System.Data.dll其他信息:中不存在映射 对象类型System.Windows.Forms.TextBox到已知的托管提供程序 本机类型。” 这个问题解决了,但有一个例外,那是一个错误。但它仍然不工作,虽然记录在数据库中,但它并没有限制我 有人能告诉我我的代码有什么问
private void btn_Register_Click(object sender, EventArgs e)
{
lbl_Available.Visible = false;
lbl_Empty.Visible = false;
bool hasValue1 = string.IsNullOrWhiteSpace(txt_PinCode.Text);
bool hasValue2 = string.IsNullOrWhiteSpace(txt_Name.Text);
if (!hasValue1 && !hasValue2)
{
string pincode = txt_PinCode.Text;
if (UserExists(pincode))
{
lbl_Available.Visible = true;
return;
}
else
{
this.Hide();
RegCluePoint frm = new RegCluePoint();
frm.lbl_PinCode.Text = txt_PinCode.Text;
frm.lbl_Name.Text = txt_Name.Text;
frm.Show();
}
}
else
{
lbl_Empty.Visible = true;
}
}
private bool UserExists(string pincode)
{
//pincode = txt_PinCode.Text
//SqlCommand cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandText = "SELECT PINCODE from UserInput where PINCODE = '@pincode'";
cmd.Parameters.AddWithValue("PINCODE", pincode);
if (conn.State != ConnectionState.Open)
conn.Open();
string pinString = (string)cmd.ExecuteScalar();
conn.Close();
return (pinString != null);
}
您正在发送
txt\u PinCode
,一个文本框对象,而不是此行cmd.Parameters.AddWithValue(“PinCode”,txt\u PinCode)中的字符串(txt\u PinCode.Text
)
您正在发送txt\u PinCode
,这是一个文本框对象,而不是此行cmd.Parameters.AddWithValue(“PinCode”,txt\u PinCode>)中的字符串(txt\u PinCode.Text
)代码>您试图传递文本框本身,但不是文本。更改代码
cmd.Connection = conn;
cmd.CommandText = "SELECT PINCODE from UserInput where PINCODE = '@pincode'";
cmd.Parameters.AddWithValue("PINCODE", txt_PinCode.Text);
您正在尝试传递文本框本身,但不是文本。更改代码
cmd.Connection = conn;
cmd.CommandText = "SELECT PINCODE from UserInput where PINCODE = '@pincode'";
cmd.Parameters.AddWithValue("PINCODE", txt_PinCode.Text);
在这行代码中,您发送的是文本框对象,而不是文本
cmd.Parameters.AddWithValue("PINCODE", txt_PinCode);
将其更改为:
cmd.Parameters.AddWithValue("PINCODE", txt_PinCode.Text);
在这行代码中,您发送的是文本框对象,而不是文本
cmd.Parameters.AddWithValue("PINCODE", txt_PinCode);
将其更改为:
cmd.Parameters.AddWithValue("PINCODE", txt_PinCode.Text);
您没有传递传递给方法的pincode
,而是传递文本框本身(甚至不是文本框的值)
您没有传递传递给方法的pincode
,而是传递文本框本身(甚至不是文本框的值)
cmd.Parameters.AddWithValue(“PINCODE”,txt_PINCODE.Text)
。和使用
s,使用
s,请cmd.Parameters.AddWithValue(“PINCODE”,txt_PINCODE.Text)
。和使用
s,使用
s,请!谢谢,那是个错误。但它仍然不起作用。用户存在于数据库中,它将进入下一个表单。检查是否在没有值时获得null
或DBNull
。然后,您可以使用如下内容:var result=cmd.ExecureScalar();返回(result!=null | | result!=DBNull.Value);谢谢,那是个错误。但它仍然不起作用。用户存在于数据库中,它将进入下一个表单。检查是否在没有值时获得null
或DBNull
。然后,您可以使用如下内容:var result=cmd.ExecureScalar();返回(result!=null | | result!=DBNull.Value);