Показать данные в сетке данных из нескольких источников - PullRequest
1 голос
/ 09 марта 2012

У меня есть этот код:

        DataTable s = produseTableAdapter.GetData();
        DataTable t = produse_magazinTableAdapter.GetData();
        foreach (DataRow row in s.Rows)
            if (row.ItemArray[2].Equals("consumabile"))
            {
                t.Rows.Add(row);
            }
        dataGridView1.DataSource = t;

Проблема в том, что dataGridView1 показывает данные из:

        DataTable t = produse_magazinTableAdapter.GetData();

Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 09 марта 2012

Один из вариантов - объединить две таблицы данных вместе, а затем использовать фильтр для таблицы данных.

На самом деле вы можете просто объединить две таблицы данных в одну.Однако необходимо убедиться, что столбцы данных имеют одинаковые имя и тип.Пример:

DataTable s = produseTableAdapter.GetData();
DataTable t = produse_magazinTableAdapter.GetData();
s.Merge(t);

BindingSource bs = new BindingSource();
bs.DataSource = s;
bs.Filter = "YourColumnName LIKE '%consumabile%'";
//OR
bs.Filter = "yourColumnName = 'consumabile'";

Примечание. YourColumnName относится к любому имени столбца в ItemArray [2] в соответствии с вашим кодом.Вы можете использовать этот источник привязки в своем представлении данных следующим образом:

this.grid_yourGrid.DataSource = this.bs;

Это сводит обе таблицы данных вместе, вот так.См. MSDN для получения дополнительной информации:

http://msdn.microsoft.com/en-us/library/system.data.datatable.aspx

Для объединения: http://msdn.microsoft.com/en-us/library/fk68ew7b.aspx

Для источника привязки: http://msdn.microsoft.com/en-us/library/system.windows.forms.bindingsource.aspx

Надеждаэто помогает!

0 голосов
/ 09 марта 2012

Если я правильно понимаю ваш код, вы берете строку из первой таблицы и добавляете ее во вторую таблицу.
Это невозможно напрямую с Rows.Add
Я думаю, вам следует использовать

t.ImportRow(row);

или

t.LoadDataRow(row.ItemArray, false);

Конечно, при условии, что ваша таблица имеет ту же схему и нет нарушений первичного ключа.

Из вашего вопроса не ясно, если produse_magazinTableAdapter.GetData ()пусто или нет.
Если можно начинать с пустой таблицы, вы можете создать DataTable с той же схемой, используя t = s.Clone ();и затем заполнение строк с помощью ImportRow или LoadDataRow

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