C# DataGrid将所有列数据查看到一列中
我有一个datagridview,有5列。我希望在一列中包含5列数据。例如:-C# DataGrid将所有列数据查看到一列中,c#,winforms,C#,Winforms,我有一个datagridview,有5列。我希望在一列中包含5列数据。例如:- Datatable1 Datatable2 A B C D New Coln 10 11 21 31 10 11 12 22 32 11 12 13 23 33 12 13 14 24 34 13 14 15 25 35 14 11 12 13
Datatable1 Datatable2
A B C D New Coln
10 11 21 31 10
11 12 22 32 11
12 13 23 33 12
13 14 24 34 13
14 15 25 35 14
11
12
13
14
15
21
22
23
24
25
31
32
33
34
35
一个简单的循环将解决这个问题。请参见下面的输出
DataTable table = new DataTable();
table.Columns.Add("col1", typeof(int));
table.Columns.Add("col2", typeof(int));
table.Columns.Add("col3", typeof(int));
table.Columns.Add("col4", typeof(int));
table.Rows.Add(25 ,10,2,10);
table.Rows.Add(22, 11, 12, 14);
table.Rows.Add(13, 22, 3, 55);
table.Rows.Add(3, 4, 12, 5);
DataTable table2 = new DataTable();
table2.Columns.Add("col1", typeof(int));
foreach (DataRow row in table.Rows)
{
foreach (DataColumn col in table.Columns)
{
table2.Rows.Add(int.Parse((row[col].ToString())));
}
}
结果
25
10
2
10
22
11
12
14
13
22
3
55
3
4
12
5
如果需要使用源数据表(不是SQL)执行此操作,可以使用LINQ按列extact行值: 命名源数据表和目标数据表:
var dt2 = new DataTable("DataTable2");
dt2.Columns.Add(new DataColumn("Col1") { DataType = typeof(int) });
dt1.Columns.OfType<DataColumn>().SelectMany((col, idx) =>
dt1.Rows.OfType<DataRow>().Select(row => dt2.Rows.Add(row.ItemArray[idx]))).ToList();
var dt2=新数据表(“数据表2”);
Add(newdatacolumn(“Col1”){DataType=typeof(int)});
dt1.Columns.OfType().SelectMany((col,idx)=>
dt1.Rows.OfType().Select(row=>dt2.Rows.Add(row.ItemArray[idx])).ToList();
数据来自哪里?如何填充DataGridView?数据从单个sql查询到单个列,因此每个列有不同的sql查询?不,只有一个datatable包含多个列,需要在一列中推送到新datatable中。GuidoG:是的,每个列有不同的查询