在asp.net中,我试图过滤数据表中的数据,因为我编写了选择状态并在另一个表中添加了行,但它没有添加。这是我的代码:
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();
答案 0 :(得分:1)
这两个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();
答案 1 :(得分:1)
如果您只想过滤,请使用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();