C# 如何制作C数据表过滤器
我的数据表C# 如何制作C数据表过滤器,c#,datatable,C#,Datatable,我的数据表 dtData ID | ID2 -------- 1 | 2 1 | 3 dtData.Select("ID = 1"); one more rows; 我想要行ID=1和ID2=3如何制作?你的意思是这样吗?: dtData.Select("ID=1 AND ID2=3"); 好吧,我就是这样做的 GridFieldDAO dao = new GridFieldDAO(); //Load My DataTab
dtData
ID | ID2
--------
1 | 2
1 | 3
dtData.Select("ID = 1"); one more rows;
我想要行ID=1和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();
请注意,在我的选择中,我将标准放在和或之间的括号中
希望这有帮助!
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("state = 'FL' ");
确保dt中有行在这里,您可以使用Linq的COPYTODATABLE方法将内容复制到另一个数据表,同时通过筛选选择特定行
DataTable dt2 = dt.Select("state = 'FL' ").CopyToDataTable;
这是一个比抛出DataRow[]更好的解决方案。如果您的过滤器碰巧没有返回任何行,并且您需要代码深处的某个模式,那么您将无法从空数组中获取它!哪个名称空间有GridFieldDAO?或者这对winforms不可用?未定义CopyToDataTable。我遗漏了什么?这是一种扩展方法。您必须添加对System.Data.DataSetExtensions的引用错误:无法将类型“System.Data.DataRow[]”隐式转换为“System.Data.DataTable”您应该为您的答案添加更多详细信息,并向其他人解释这一操作的原因。
DataTable dt2 = dt.Select("state = 'FL' ").CopyToDataTable;