【发布时间】:2010-07-29 12:08:36
【问题描述】:
我的数据表;
dtData
ID | ID2
--------
1 | 2
1 | 3
dtData.Select("ID = 1"); one more rows;
我想要行“ID = 1 And ID2 = 3”怎么做?
【问题讨论】:
我的数据表;
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() 中注意,我将标准放在 Parens 中的 AND 和 OR 之间
希望这会有所帮助! 迈克V
【讨论】:
DataRow[] 更好。如果您的过滤器碰巧没有返回任何行,并且您在代码深处需要架构,那么您将无法从空数组中获取它!
最好用这个:
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' ");
【讨论】: