При редактировании базы данных, затем добавлении нескольких строк в сетку данных, строки дублируются - PullRequest
0 голосов
/ 19 ноября 2018

У меня есть программа, в которой пользователь может добавлять профили, а также редактировать их. Я хотел, чтобы представление таблицы данных было проще просматривать, поэтому я добавил в него несколько строк, но когда я вернусь к редактированию строки, внесу изменения в базу данных, а затем сохраню, он добавит целый новый набор строк! Как я могу предотвратить это? Я попытался очистить сетку данных с помощью dataGridView1.Rows.Clear();, но это выдает эту ошибку: System.ArgumentException: «Не удается очистить этот список». Вот код, который я написал для добавления нескольких строк:

        private void pictureBox1_Click(object sender, EventArgs e)
    {
        tabTasks.SelectedIndex = 1;
        RefreshDBConnection();
        dataGridView1.Rows[0].Cells["FIRST NAME"].Value = dataGridView1.Rows[0].Cells["FIRST NAME"].Value + " " + dataGridView1.Rows[0].Cells["LAST NAME"].Value + Environment.NewLine + dataGridView1.Rows[0].Cells["ADDRESS #1"].Value + " " + dataGridView1.Rows[0].Cells["ADDRESS #2"].Value + Environment.NewLine + dataGridView1.Rows[0].Cells["CITY"].Value + ", " + dataGridView1.Rows[0].Cells["STATE"].Value + " " + dataGridView1.Rows[0].Cells["ZIP CODE"].Value + Environment.NewLine + dataGridView1.Rows[0].Cells["COUNTRY"].Value + Environment.NewLine + dataGridView1.Rows[0].Cells["PHONE"].Value + Environment.NewLine + dataGridView1.Rows[0].Cells["EMAIL"].Value;
    }

А вот строки для редактирования профиля, если это поможет:

        private void buttonSave_Click(object sender, EventArgs e)
    {
        ConnectToDataBase();
        OleDbCommand command = new OleDbCommand();
        command.Connection = connection;
        //string query = "update Profiles set [PROFILE NAME]='" + textBox1.Text + "', [LOGIN EMAIL]='" + textBox2.Text + "', [PASSWORD]='" + textBox3.Text + "', [FULL NAME]='" + textBox4.Text + "', [CARD NUMBER]='" + textBox5.Text + "', [EXP MONTH]='" + comboBox1.Text + "', [EXP YEAR]='" + comboBox2.Text + "', CVV='" + textBox6.Text + "' where  ID='" + Convert.ToInt32(textBox7.Text) + "'";
        string query = "update Profiles set [PROFILE NAME]= @Profile, [FIRST NAME]= @FName, [LAST NAME]= @LName, [ADDRESS #1]= @Add1, [ADDRESS #2]= @Add2, [CITY]= @City, [ZIP CODE]= @Zip, [STATE]= @State, [COUNTRY]= @Country, [PHONE]= @Phone, [EMAIL]= @Email, [CARD TYPE]= @CardType, [CARD NUMBER]= @CardN, [EXP MONTH]= @EXPM, [EXP YEAR]= @EXPY, CVV= @CVV where ID = @Id";
        command.Parameters.AddWithValue("@Profile", txtProfile.Text);
        command.Parameters.AddWithValue("@FName", txtFirstName.Text);
        command.Parameters.AddWithValue("@LName", txtLastName.Text);
        command.Parameters.AddWithValue("@Add1", txtAddress1.Text);
        command.Parameters.AddWithValue("@Add2", txtAddress2.Text);
        command.Parameters.AddWithValue("@City", txtCity.Text);
        command.Parameters.AddWithValue("@Zip", txtZip.Text);
        command.Parameters.AddWithValue("@State", comState.Text);
        command.Parameters.AddWithValue("@Country", comCountry.Text);
        command.Parameters.AddWithValue("@Phone", txtPhone.Text);
        command.Parameters.AddWithValue("@Email", txtEmail.Text);
        command.Parameters.AddWithValue("@CardType", comCardType.Text);
        command.Parameters.AddWithValue("@CardN", txtCard.Text);
        command.Parameters.AddWithValue("@EXPM", comboEXPM.Text);
        command.Parameters.AddWithValue("@EXPY", comboEXPY.Text);
        command.Parameters.AddWithValue("@CVV", txtCVV.Text);
        command.Parameters.AddWithValue("@ID", txtID.Text);
        command.CommandText = query;
        command.ExecuteNonQuery();
        RefreshDBConnection();
        connection.Close();
        MessageBox.Show("Profile Edited");
        this.Close();
    }

и, наконец, вот изображение того, что происходит, когда я редактирую, а затем сохраняю, с некоторой информацией, заблокированной по очевидным причинам: Error with lines

Пожалуйста, дайте мне знать, если я могу дать вам больше информации, спасибо! (используя c # btw)

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