C#中DataTable實(shí)現(xiàn)篩選備忘
說明:
DataTable進(jìn)行過濾篩選,常用的一些方法為:Select,dataview
1. 直接循環(huán)遍歷獲取
// 假設(shè)dt是由"SELECT C1,C2,C3 FROM T1"查詢出來的結(jié)果
DataTable dt = new DataTable();
for (int i = 0; i < dt.Rows.Count; i++)
{
if (dt.Rows[i]["C1"].ToString() == "abc")//查詢條件
{
//進(jìn)行操作
}
}
2. 使用LinQ
// DataTable.Select(條件[和Db的Sql篩選基本相似])
DataTable dt = new DataTable();
DataRow[] drArr = dt.Select(" C1=’abc’ "); //查詢
//DataTable.Select( "ID=" + id )
//多條件,如:DataTable.Select("ID=" + id +" and name=" +name)
// 模糊篩選
DataRow[] drArr = dt.Select("C1 LIKE ’abc%’");
// 另一種模糊查詢的方法
DataRow[] drArr = dt.Select("’abc’ LIKE C1 + ’%’", "C2 DESC");
// 篩選后并排序
DataRow[] drArr = dt.Select("C1=’abc’", "C2 DESC");
// DataRow如何轉(zhuǎn)為DataTable呢?
// 思路:DataRow賦值給新的DataTable
DataTable dtNew = dt.Clone();
for (int i = 0; i < drArr.Length; i++)
{
dtNew.ImportRow(drArr[i]);
}
3. 利用DataView的RowFilter 實(shí)現(xiàn)篩選
DataTable dataSource = new DataTable();
DataView dv = dataSource.DefaultView;
dv.RowFilter = "columnA = 'abc'";
//1.過濾后直接獲取DataTable
DataTable newTable1 = dv.ToTable();
//2.設(shè)置新DataTable的TableName
DataTable newTable2 = dv.ToTable("NewTableName");
//3.設(shè)置新表是否過濾重復(fù)項(xiàng),擁有的列的列名以及出現(xiàn)的順序
//即可以設(shè)置新表的字段。但是字段名肯定是老表dataSource中擁有的。
DataTable newTable3 =
dv.ToTable(true, new string[] { "columnA,columnF,columnC" });
//4.綜合了2.3兩點(diǎn)。
DataTable newTable4 =
dv.ToTable("NewTableName", true, new string[] { "columnA,columnF,columnC" });
文章來源地址http://www.zghlxwxcb.cn/news/detail-615699.html
文章來源:http://www.zghlxwxcb.cn/news/detail-615699.html
到了這里,關(guān)于C#中DataTable實(shí)現(xiàn)篩選查詢的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!