Как обрабатывать дубликаты базы данных в приложении C #? - PullRequest
0 голосов
/ 14 февраля 2019

В моей программе есть 3 основные функции INSERT UPDATE DELETE, проект о создании профиля машины в базе данных, его обновлении и удалении.

Пока мой код работает, но у меня есть некоторые проблемы сдублирует, когда я хочу обновить в своем коде, я проверяю, существует ли профиль, поэтому он хочет дублировать его, но здесь, когда когда-либо обновляю его, дублирую запись, и когда я удаляю, это делает то же самое.

Это ссылка на видео, выражающее мою проблему: https://vimeo.com/317221805

Вот мой код:

private void Sauv_Btn_Click_1(object sender, EventArgs e)
    {

        SqlConnection con = new SqlConnection(cnString);

        using (SqlCommand check_User_Name = new SqlCommand("SELECT COUNT(*) FROM [Fiche_Machine] WHERE ([N_SERIE] = @N_SERIE)", con))
        {
            con.Open();
            check_User_Name.Parameters.AddWithValue("@N_SERIE", textBoxNumSer.Text);

            using (SqlDataReader reader = check_User_Name.ExecuteReader())
            {
                reader.Read();
                int count = reader.GetInt32(0);
            }
            int UserExist = (int)check_User_Name.ExecuteScalar();

            if (MessageBox.Show("Voulez-vous sauvgarder la modification de cette fiche client ?", "Sauvgarde fiche client...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
            {
                try
                {

                    if (UserExist == 0)
                    {

                        MessageBox.Show("Le Client n'existe pas Renseigner le numero de Serie UNIQUE obligatoirement");

                    }
                    else if (UserExist > 0)

                    {
                        //Fihce Machine-----------------------------------------------------------------------------------------------------------------


                        Methodes.dt.Rows[rowId]["N_SERIE"] = textBoxNumSer.Text.Trim();
                        Methodes.dt.Rows[rowId]["TYPE_DE_MACHINE"] = textBoxTpMch.Text.Trim();
                        Methodes.dt.Rows[rowId]["N_MOTEUR"] = textBoxNumMtr.Text.Trim();
                        Methodes.dt.Rows[rowId]["PONT_AVANT"] = textBoxPnAv.Text.Trim();
                        Methodes.dt.Rows[rowId]["PONT_ARRIERE"] = textBoxPnAr.Text.Trim();
                        Methodes.dt.Rows[rowId]["BOITE_DE_VITESSE"] = textBoxBtVit.Text.Trim();
                        Methodes.dt.Rows[rowId]["DISTRIBUTEUR_AVANT"] = textBoxDisAv.Text.Trim();




                        //------------------------------------------------------------------------------------------------------------------------

                        Methodes.adap.Update(Methodes.dt);

                        MessageBox.Show("Fiche Sauvgarder avec succés");
                    }

                }
                catch (SqlException ex)
                {
                    MessageBox.Show(ex.Message);
                }
            }        

            Form1 form1 = new Form1();
            form1.LoadData();


            }
    }

    private void Vld_Btn_Click_1(object sender, EventArgs e)
    {
        SqlConnection con = new SqlConnection(cnString);

        using (SqlCommand check_User_Name = new SqlCommand("SELECT COUNT(*) FROM [Fiche_Machine] WHERE ([N_SERIE] = @N_SERIE)", con))
        {
            con.Open();
            check_User_Name.Parameters.AddWithValue("@N_SERIE", textBoxNumSer.Text);

            using (SqlDataReader reader = check_User_Name.ExecuteReader())
            {
                reader.Read();
                int count = reader.GetInt32(0);
            }
            int UserExist = (int)check_User_Name.ExecuteScalar();

            if (UserExist == 0)
            {

                try
                {
                    if (textBoxNumSer.Text.Trim() == ("N_SERIE"))
                    {
                        MessageBox.Show("N°SERIE Existant vous pouvez le modifier ou le supprimer");
                    }

                    if (textBoxNumSer.Text.Trim() == "")
                    {

                        MessageBox.Show("Remplissez les champs vides.... et renseigner le numero de Serie UNIQUE obligatoirement");

                    }
                    else

                    {

                        DataRow dr;

                        dr = Methodes.dt.NewRow();


                        //Fihce Machine-----------------------------------------------------------------------------------------------------------------


                        dr["N_SERIE"] = textBoxNumSer.Text.Trim();
                        dr["TYPE_DE_MACHINE"] = textBoxTpMch.Text.Trim();
                        dr["N_MOTEUR"] = textBoxNumMtr.Text.Trim();
                        dr["PONT_AVANT"] = textBoxPnAv.Text.Trim();
                        dr["PONT_ARRIERE"] = textBoxPnAr.Text.Trim();
                        dr["BOITE_DE_VITESSE"] = textBoxBtVit.Text.Trim();
                        dr["DISTRIBUTEUR_AVANT"] = textBoxDisAv.Text.Trim();


                        //------------------------------------------------------------------------------------------------------------------------



                        Methodes.dt.Rows.Add(dr);

                        Methodes.adap.Update(Methodes.dt);

                        try
                        {

                            MessageBox.Show("Fiche Sauvgarder avec succés");
                        }
                        catch (SqlException ex)
                        {
                            MessageBox.Show(ex.Message);
                        }

                    }



                }

                catch (Exception ex)

                {

                    MessageBox.Show(ex.ToString());

                }

                con.Close();

            }
            else

            {

                MessageBox.Show("Ce Numero de Serie existe déjà entrez un nouveau svp");
            }
        }

                Form1 form1 = new Form1();
                form1.LoadData();
    }



    private void Supp_Btn_Click_1(object sender, EventArgs e)
    {

        SqlConnection con = new SqlConnection(cnString);

        using (SqlCommand check_User_Name = new SqlCommand("SELECT COUNT(*) FROM [Fiche_Machine] WHERE ([N_SERIE] = @N_SERIE)", con))
        {
            con.Open();
            check_User_Name.Parameters.AddWithValue("@N_SERIE", textBoxNumSer.Text);

            using (SqlDataReader reader = check_User_Name.ExecuteReader())
            {
                reader.Read();
                int count = reader.GetInt32(0);
            }
            int UserExist = (int)check_User_Name.ExecuteScalar();

            if (UserExist > 0)
            {

                try
                {

                    if (textBoxNumSer.Text.Trim() == "")
                    {

                        MessageBox.Show("La fiche est vide !! Veuillez Selectionner une fiche à supprimer");

                    }
                    else

                    {
                        try

                        {
                            if (MessageBox.Show("êtes-vous sûr de vouloir supprimer ?", "Suppression...", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                            {

                                Methodes.dt.Rows[rowId].Delete();

                                Methodes.adap.Update(Methodes.dt);

                                MessageBox.Show("Fiche Supprimer avec succés");
                            }
                        }

                        catch (Exception ex)

                        {

                            MessageBox.Show(ex.ToString());

                        }

                        Form1 form1 = new Form1();
                        form1.LoadData();
                    }
                }
                catch (Exception ex)

                {

                    MessageBox.Show(ex.ToString());

                }
            }
        }
    }

1 Ответ

0 голосов
/ 14 февраля 2019

Если вы хотите проверить, существует ли пользователь или нет, вы можете просто использовать

if(reader.HasRows) user exists else user doesn't exist

Надеюсь, что это может помочь

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