使用背景:
完成一个查询,返回一个DataTable后,很多时候都想在查询结果中继续搜索。这时可以使用DataTable.Select方法对结果进行再查询。
DataRow[] dr = ds.Tables[table_name].Select(); DataRow[] dr = ds.Tables[table_name].Select("数据库绑定在gridview上的列名='该列你要查询的值'"); DataRow[] dr = ds.Tables[table_name].Select("数据库绑定在gridview上的列名='该列你要查询的值'","排序字段"); DataRow[] dr = ds.Tables[table_name].Select(); //一般情况下测试时table_name用0来代替 for (int i = 0; i < dr.Length; i++) { MessageBox.Show(dr[i]["CREATED_BY"].ToString()); }
小注:
1、一定要注意单引号的问题;我之前就是把变量用双引号括起来了,一直出错,后来在网上查,发现要先有双引号,再用单引号;即‘“变量”’。
2、Select方法:
Select();//全部查出来 Select(过滤条件);//根据过滤条件进行过滤,如Select("columnname1 like '%xx%'"); Select(过滤条件,排序字段);//过滤,并排序,如Select("columnname1 like '%xx%'",columnname2);小注:
Select方法可以传递的类似于sql语句中的where条件部分,可以传递:
条件1 and 条件2 and 条件3 这种形式,可以参考:
导入Excel数据的时候,要检验数据是否重复
//数据量大的时候,在dataset中进行重复检验 strTemp = "AcctNo='" + obZH.ToString() + "' and TransDate='" + obRQ.ToString() + "' and SubAcctNo='" + obDFZH.ToString() + "'"; rowsTemp = dsTemp.Tables[0].Select(strTemp); if (rowsTemp.Length>0) { //如果重复了,进行记录 repeatDj += "第" + v.ToString() + "行\r\n"; }