使用c#在数据表中选择语句
本文关键字:选择 语句 数据表 使用 | 更新日期: 2023-09-27 18:15:42
在asp.net中,我试图过滤datatable中的数据,因为我编写select语句并在另一个表中添加行,但它没有添加。这是我的代码:
DataTable dtnew = new DataTable();
DataTable dt = (DataTable)XMLSerializerBL.Deserialize(xDocTable.OuterXml, XMLSerializerBL.OutputType.DataTable);
//grdsap.DataSource = dt;
//grdsap.DataBind();
string expression = "VKGRP='001'";
DataRow[] rows = dt.Select(expression);
foreach (DataRow thisrow in rows)
{
//dtnew.Rows.Add(thisrow);+
//dtnew.ImportRow(thisrow);
dtnew.Rows.Add(thisrow.ItemArray);
}
grdmy.DataSource = dtnew;
grdmy.DataBind();
如果你只想过滤,就使用DataView
:
DataTable dtnew = new DataTable();
DataTable dt = (DataTable)XMLSerializerBL.Deserialize(xDocTable.OuterXml, XMLSerializerBL.OutputType.DataTable);
DataView dvData = new DataView(dtData);
dvData.RowFilter = "VKGRP='001'";
grdmy.DataSource = dvData;
grdmy.DataBind();
这两个DataTable对象必须具有相似的列集合。
我假设dt
有两列。
dtnew = new DataTable();
dtnew.Columns.Add("Col1");
dtnew.Columns.Add("Col2");
foreach (DataRow thisrow in rows)
{
dtnew.Rows.Add(thisrow[0],thisrow[1]);
}
可以使用dt.DefaultView.RowFilter
对结果进行过滤。
dt.DefaultView.RowFilter="VKGRP='001'";
grdmy.DataSource = dt;
grdmy.DataBind();