gpt4 book ai didi

c# - 如何将多个数据表存储到单个数据集中

转载 作者:行者123 更新时间:2023-11-30 17:08:56 24 4
gpt4 key购买 nike

我有多个数据表。我想将所有数据表行显示到一个 gridview 中。我该怎么做?

DataTable dtbag101 = (DataTable)Session["bag101"];
DataTable dtwallet111 = (DataTable)Session["wallet111"];


DataSet ds= new DataSet();
ds.Tables.Add(dtbag101);
ds.Tables.Add(dtwallet111);

GridView1.DataSource= ds;
GridView1.DataBind();

两个数据表的列名相同。在这里,我尝试使用数据集,但只有第一个 DataTable,即 datbag101 显示在 gridview 中。

如何在一个 GridView 中显示所有值?

最佳答案

假设您的两个数据表具有相同的列,您可以使用一些方便的 LINQ 将它们 UNION。

DataTable dtbag101 = (DataTable)Session["bag101"];
DataTable dtwallet111 = (DataTable)Session["wallet111"];

var result = dtbag101.AsEnumerable().Union(dtwallet111.AsEnumerable());

GridView1.DataSource = result;
GridView1.DataBind();

否则尝试使用DataTable.Merge:

DataTable dtbag101 = (DataTable)Session["bag101"];
DataTable dtwallet111 = (DataTable)Session["wallet111"];

dtbag101.Merge(dtwallet111, true);

GridView1.DataSource = dtbag101;
GridView1.DataBind();

我不确定为什么这对您不起作用。试试这个方法(从 here 中获取):

public static DataTable Union(DataTable First, DataTable Second)
{
//Result table
DataTable table = new DataTable("Union");

//Build new columns
DataColumn[] newcolumns = new DataColumn[First.Columns.Count];

for(int i=0; i < First.Columns.Count; i++)
{
newcolumns[i] = new DataColumn(
First.Columns[i].ColumnName, First.Columns[i].DataType);
}

table.Columns.AddRange(newcolumns);
table.BeginLoadData();

foreach(DataRow row in First.Rows)
{
table.LoadDataRow(row.ItemArray,true);
}

foreach(DataRow row in Second.Rows)
{
table.LoadDataRow(row.ItemArray,true);
}

table.EndLoadData();
return table;
}

用你的两个数据表调用方法:

GridView1.DataSource = Union(dtbag101, dtwallet111);

关于c# - 如何将多个数据表存储到单个数据集中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13411448/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com