使用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();

使用c#在数据表中选择语句

如果你只想过滤,就使用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();