首页 > 解决方案 > 如何使用选择计数 (*) 和参数 SQL 表和 c# 添加或更新值?

问题描述

我正在尝试使用 c# 语言使用此代码更新 SQL 表中的信息,第一部分是计算所有数据。第二部分是运行我的更新查询/功能

事件是:private void mlnk_ADD_Click(object sender, EventArgs e)

string SARL; 
SqlCommand cmd = new SqlCommand("SELECT COUNT(*) FROM [employe] WHERE CODE = @CODE OR FULLNAME = 
                @FULLNAME OR BIRTHDATE = @BIRTHDATE OR BIRTHPLACE = @BIRTHPLACE OR ADDRESS = @ADDRESS 
                 OR NCCP = @NCCP OR PHONE = @PHONE OR JOB = @JOB OR SARL =@SARL", napster.myConn);
        cmd.Parameters.Clear();
        cmd.Parameters.AddWithValue("@CODE", mtb_CODE.Text);
        cmd.Parameters.AddWithValue("@FULLNAME", mtb_FULLNAME.Text);
        cmd.Parameters.AddWithValue("@BIRTHDATE", mdtp_BIRTHDATE.Text);
        cmd.Parameters.AddWithValue("@BIRTHPLACE", mtb_BIRTHPLACE.Text);
        cmd.Parameters.AddWithValue("@ADDRESS", mtb_ADDRESS.Text);
        cmd.Parameters.AddWithValue("@NCCP", mtb_NCCP.Text);
        cmd.Parameters.AddWithValue("@PHONE", mtb_PHONE.Text);
        cmd.Parameters.AddWithValue("@JOB", mtb_JOB.Text);

        if (mrb_LOCATERR.Checked == true)
        { SARL = "LOCA-TERR"; }
        if (mrb_LUDAR.Checked == true)
        { SARL = "LUDAR"; }
        if (mrb_ECORA.Checked == true)
        { SARL = "ECORA"; }

        cmd.Parameters.AddWithValue("@SARL", SARL);

        int UserExist = (int)cmd.ExecuteScalar();

在这里,我试图在检查所有数据不存在以避免重复后将数据插入我的表中

     if (UserExist > 0)
        {
            this.Alert("the information already exists.", frmAlert.alertTypeEnum.Error);               
        }
        else
        {
            if (mrb_LOCATERR.Checked == true)
            { SARL = "LOCA-TERR"; }
            if (mrb_LUDAR.Checked == true)
            { SARL = "LUDAR"; }
            if (mrb_ECORA.Checked == true)
            { SARL = "ECORA"; }

            if (mtb_CODE.Text != "" && mtb_FULLNAME.Text != "" && mdtp_BIRTHDATE.Text != "" && mtb_BIRTHPLACE.Text != "" && mtb_JOB.Text != "" && mtb_PHONE.Text != "")
            {
               // (update_employee) is public void for insert data into [employe] table
                napster.update_employee(mlnk_ID.Text, mtb_CODE.Text, mtb_FULLNAME.Text, mdtp_BIRTHDATE.Text, mtb_BIRTHPLACE.Text, mtb_ADDRESS.Text, mtb_JOB.Text, mtb_PHONE.Text, SARL, mtb_NCCP.Text);
                mlnk_ID.Text = "";
                mtb_CODE.Text = "";
                mtb_FULLNAME.Text = "";
                mdtp_BIRTHDATE.Text = "";
                mtb_BIRTHPLACE.Text = "";
                mtb_ADDRESS.Text = "";
                mtb_JOB.Text = "";
                mtb_PHONE.Text = "";
                mtb_NCCP.Text = "";
                mrb_LOCATERR.Checked = true;

                this.Alert("information updated.", frmAlert.alertTypeEnum.Info);
            }

            else
            {
                this.Alert("information not updated.", frmAlert.alertTypeEnum.Error);

            }
        }

标签: c#sqlselectcount

解决方案


使用存储过程更简洁,您可以定义输出和输入参数(例如:select cout(*) into output_parameter where ....)。并使用 switch 语句,您的代码中有很多 IF。


推荐阅读