Member 9983063 Ответов: 1

Я хочу объединить все таблицы данных в один datagridview


Hello Guys,! i have created 4 data tables in my project and now i want to merge this all data tables in a single datagridview


Что я уже пробовал:

DataSet dsa = new DataSet();
            DataTable dt1 = new DataTable();
            dsa.Tables.Add(dt1);
            OleDbDataAdapter da = new OleDbDataAdapter();
            da = new OleDbDataAdapter("SELECT [Flavours] As [Flavours],count(column2) As [Small] from [Total] Where [Date] between #" + dateTimePicker1.Value.ToString("dd/MM/yyyy") + "# AND #" + dateTimePicker2.Value.ToString("dd/MM/yyyy") + "# AND [column2] IN ('Small.......')Group By [Flavours]", VCON);
            da.Fill(dt1);
            dataGridView1.DataSource = dt1;
            VCON.Close();
            DataSet dsa1 = new DataSet();
            DataTable dt2 = new DataTable();
            dsa1.Tables.Add(dt2);
            OleDbDataAdapter da1 = new OleDbDataAdapter();
            da1 = new OleDbDataAdapter("SELECT [Flavours] As [Flavours],count(column2) As [Medium] from [Total] Where [Date] between #" + dateTimePicker1.Value.ToString("dd/MM/yyyy") + "# AND #" + dateTimePicker2.Value.ToString("dd/MM/yyyy") + "# AND [column2] IN ('Medium......')Group By [Flavours]", VCON);
            da1.Fill(dt2);
            dataGridView1.DataSource = dt2;
            VCON.Close();
            DataSet dsa2 = new DataSet();
            DataTable dt3 = new DataTable();
            dsa.Tables.Add(dt3);
            OleDbDataAdapter da2 = new OleDbDataAdapter();
            da2 = new OleDbDataAdapter("SELECT [Flavours] As [Flavours],count(column2) As [Large] from [Total] Where [Date] between #" + dateTimePicker1.Value.ToString("dd/MM/yyyy") + "# AND #" + dateTimePicker2.Value.ToString("dd/MM/yyyy") + "# AND [column2] IN ('Large.......')Group By [Flavours]", VCON);
            da2.Fill(dt3);
            dataGridView1.DataSource = dt3;
            VCON.Close();
            DataSet dsa3 = new DataSet();
            DataTable dt4 = new DataTable();
            dsa.Tables.Add(dt1);
            dsa.Tables.Add(dt2);
            dsa.Tables.Add(dt3);
            dsa.Tables.Add(dt4);
            OleDbDataAdapter da3 = new OleDbDataAdapter();
            da3 = new OleDbDataAdapter("SELECT [Flavours] As [Flavours],count(column2) As [Ex Large] from [Total] Where [Date] between #" + dateTimePicker1.Value.ToString("dd/MM/yyyy") + "# AND #" + dateTimePicker2.Value.ToString("dd/MM/yyyy") + "# AND [column2] IN ('Ex  Large...')Group By [Flavours]", VCON);
            da3.Fill(dt4);
            dataGridView1.DataSource = dt4;
            VCON.Close();

[no name]

Ладно, хорошо. У вас есть разрешение продолжить. Никто здесь не встанет у тебя на пути.

Suvendu Shekhar Giri

В чем проблема?

Member 9983063

проблема в том, что я хочу объединить все таблицы данных в один datagridview, вот и все

Suvendu Shekhar Giri

и с тем, что вы пробовали, вы сталкиваетесь с какой-либо ошибкой или проблемой?

1 Ответов

Рейтинг:
1

OriginalGriff

Лучший способ сделать это - использовать один SELECT, который объединяет таблицы в один набор столбцов-в противном случае DGV не знает, что с ним делать.
Как правило, у вас будут общие данные в таблицах - внешний ключ или два, - которые позволяют SQL знать, какие строки связаны с помощью запроса соединения:

SELECT u.UserName, a.Address FROM Users u
JOIN Addresses a ON a.UserID = u.ID
Который возвращает каждого пользователя и его адрес из двух таблиц, Соединенных через внешний ключ UserID, в таблицу Users.

Если у вас нет таких отношений, то в значительной степени вы не можете этого сделать, так как SQL и teh DGV понятия не имеют, какие строки "скрепить болтами" для отображения.