我的数据表;
dtData
ID | ID2
--------
1 | 2
1 | 3
dtData.Select("ID = 1"); one more rows;
我想获取行 "ID = 1 And ID2 = 3",该如何实现?
您是指像这样吗?:
dtData.Select("ID=1 AND ID2=3");
好的,这是我处理这类事情的方法...
GridFieldDAO dao = new GridFieldDAO();
//Load My DataTable
DataTable dt = dao.getDT();
//Get My rows based off selection criteria
DataRow[] drs = dt.Select("(detailID = 1) AND (detailTypeID = 2)");
//make a new "results" datatable via clone to keep structure
DataTable dt2 = dt.Clone();
//Import the Rows
foreach (DataRow d in drs)
{
dt2.ImportRow(d);
}
//Bind to my new DataTable and it will only show rows based off selection
//criteria
myGrid.DataSource = dt2;
myGrid.DataBind();
注意在我的Select()中,我将条件放在AND和OR之间的括号中。
希望这可以帮助! Mike V
GridFieldDAO dao = new GridFieldDAO();
//Load My DataTable
DataTable dt = dao.getDT();
//Get My rows based off selection criteria and copy them directly to datatable
DataTable dt2 = dt.Select("(detailID = 1) AND (detailTypeID = 2)").CopyToDataTable();
DataTable dt2 = dt.Select("ID = 1").CopyToDataTable;
确保dt中有行数据
您可以使用 Linq 的 CopyToDataTable 方法,通过筛选特定行的方式将内容复制到另一个 DataTable。
DataTable dt2 = dt.Select("state = 'FL' ").CopyToDataTable;
很好的例子,非常有用。想要补充一件事情 - 如果你需要在字符串上进行选择,请使用类似以下的方法:
DataTable dt2 = dt.Select("state = 'FL' ");
DataRow[]
,这是一个更好的解决方案。如果你的筛选结果返回了0行,并且需要在代码深处使用模式,那么从空数组里获取不到它! - mo.