как я могу добавить или обновить значения с помощью select count (*) и параметров SQL table и c#? - PullRequest
1 голос
/ 25 января 2020

Я пытаюсь обновить информацию в таблице SQL этим кодом, используя язык c#, первый раздел - подсчитать все данные. второй раздел - запуск моего обновления. Запрос / функция

событие: private void mlnk_ADD_Click (отправитель объекта, 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);

            }
        }

1 Ответ

0 голосов
/ 27 января 2020

Используйте хранимую процедуру, она более понятна, и вы можете определить выходные и входные параметры (например: выберите cout (*) в output_parameter где ....). и используйте оператор switch, в вашем коде много IF.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...