Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何检查SQL数据库中是否已经存在该记录?_C#_Sql_Sql Server - Fatal编程技术网

C# 如何检查SQL数据库中是否已经存在该记录?

C# 如何检查SQL数据库中是否已经存在该记录?,c#,sql,sql-server,C#,Sql,Sql Server,我试图检查该值是否存在于数据库列中。我知道这个问题被问了好几次,但没有一次能解决我的问题。我在很多方面都试过了。反正我下面的代码通过了一个异常 中发生“System.ArgumentException”类型的未处理异常 System.Data.dll其他信息:中不存在映射 对象类型System.Windows.Forms.TextBox到已知的托管提供程序 本机类型。” 这个问题解决了,但有一个例外,那是一个错误。但它仍然不工作,虽然记录在数据库中,但它并没有限制我 有人能告诉我我的代码有什么问

我试图检查该值是否存在于数据库列中。我知道这个问题被问了好几次,但没有一次能解决我的问题。我在很多方面都试过了。反正我下面的代码通过了一个异常

中发生“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);