Как очистить представление таблицы данных после каждого выбора выпадающего списка для повторного поиска новых данных

#c# #winforms #datagridview #combobox

#c# #winforms #datagridview #выпадающий список

Вопрос:

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

 private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            if(comboBox1.SelectedIndex==0)
            {
                viewItemsdgv.DataSource = null;
                viewItemsdgv.Rows.Clear();
                viewItemsdgv.Columns.Clear();
                dt.Clear();
                da = new SqlDataAdapter("select itmBar as Barcode,itmTrdName as 'Trading name' ,itmScName as 'Scintfic name',pack as 'Pills in packet',tab as 'Pills in table',exdate as 'Expire date',packQuant as 'Packet quantity',tabQuant as 'Table quantity' from item where buyDflt !='buyDfltPiecerdb'", cn);
                da.Fill(dt);
                viewItemsdgv.DataSource = dt;
            }
            if (comboBox1.SelectedIndex == 1)
            {
                viewItemsdgv.DataSource = null;
                viewItemsdgv.Rows.Clear();
                viewItemsdgv.Columns.Clear();
                dt.Clear();
                da = new SqlDataAdapter("select itmBar as Barcode,itmTrdName as 'Trading name' ,pieceQuant as 'Pieces quantity',exdate as 'Expire date' from item where buyDflt='buyDfltPiecerdb'", cn);
                da.Fill(dt);
                viewItemsdgv.DataSource = dt;
            }
        }
  

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

1. @stuartd DataBind() недоступен в Winform DataGridView . Это для ASP.NET «с GridView » .

2. ваш код избыточен, но он должен работать

Ответ №1:

Вы удаляете столбцы DataGridView, вам также необходимо удалить столбцы datatable (dt).

Добавить

dt.Columns.Очистить ();

Перед

dt.Clear();

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

1. сэр, спасибо за ваш ответ, вы решили мою проблему, я все еще учусь, и ваш совет много значит для меня.. с уважением

2. Спасибо. Это был первый раз, когда я внес свой вклад в Stack Overflow, и я рад, что я был кому-то полезен.