удаление предыдущих данных перед вставкой новых при каждом нажатии кнопки

#c# #database #datagridview

#c# #База данных #datagridview

Вопрос:

У меня есть форма, которая содержит DataGridView, кнопку «выбор» и поле со списком. Как я могу удалять предыдущие данные, вставленные в DataGridView каждый раз, когда я нажимаю кнопку «выбор»?

Это мой код:

 private void button5_Click(object sender, EventArgs e)
{
    compteDataGridView.Update();
    compteDataGridView.Refresh(); 
    try
    {
        String c = comboBox1.SelectedItem.ToString();

        if ((String.IsNullOrEmpty(textBox1.Text) == true) amp;amp; (String.IsNullOrEmpty(textBox3.Text) == true) amp;amp; (comboBox1.SelectedItem == c) amp;amp; (String.IsNullOrEmpty(textBox4.Text) == true))
        {
              SqlConnection connection = new SqlConnection(connectionString);
              connection.Open();

              req = "select numero_cpte,intitulé_cpte from compte where type_cpte='" c "';"; 
              SqlCommand sql = new SqlCommand(req, connection);
              dr = new SqlDataAdapter(req, connection);
              dr.Fill(ds, "compte");
              compteDataGridView.DataSource = ds.Tables["compte"];
              connection.Close();
  

ПРИМЕЧАНИЕ: выбор основан на элементе, выбранном пользователем (ComboBox1)

Комментарии:

1. К вашему сведению: они вам не нужны == true в ваших операторах if. if s проверяет логическое выражение, которое .IsNullOrEmpty возвращает.

2. хорошо, спасибо CAbbott и Nathan A за редактирование 🙂

Ответ №1:

Это перед вашим вызовом обновления должно сработать:

 compteDataGridView.Rows.Clear();
  

Альтернативным методом было бы:

 compteDataGridView.DataSource = null;
  

Комментарии:

1. спасибо, Харис, но у меня ошибка, в которой говорится, что «Я не могу удалить список»:/ Я помещаю этот код в конец моего метода

2. Предполагается, что код должен идти до compteDataGridView.Update(); . Возможно, после этого вам потребуется еще один вызов обновления, я не могу протестировать его на своей машине прямо сейчас.