脱机数据的排序、搜索和筛选

2008-07-24 15:20:56.0     推荐:0    收藏:0    评论:0     来源:中国IT实验室

1. DataTable类的搜索和筛选功能

根据主键值查找行

DataRowCollection类的Find方法,接受包含要查找行的主键值为参数,因为是根据主键值查找,所以仅返回一个DataRow。 DataTable tbl=new DataTable(“Customers”);
da.Fill(tbl);
tbl.PrimaryKey=new DataColumn[] {tbl.Columns[“CustomerID”]};
DataRow row=tbl.Rows.Find(“ALFKI”);
if((row<>null)
consol.WriteLine(…);


如果主键为复合键,则应将一个对象数组传递给Find方法,其中数组中的项对应于包含该主键的DataColumn。 tbl.PrimaryKey=new DataColumn[] {tbl.Columns[“OrderID”],
tbl.Columns[“ProductID”]};
Object[] objCriteria=new object[] {10643,28}; //object对象数组
DataRow row=tbl.Rows.Find(objCriteria);


执行动态的复杂搜索-Select方法

DataTable类的Select方法接受类似于SQL查询中的Where条件语句为参数,返回DataRowCollection对象。 DataTable tbl=new DataTable(“Customers”);
da.Fill(tbl);
sting strFilter;
strFilter=”Country=’USA’ and City <>’Seattle’”;
foreach(DataRow row in tbl.Select(strFilter))
Consol.WriteLine(…);


Select方法的参数字符串接受使用*或%作为通配符进行模糊查询,例如”State like ‘New%’”查找State字段以”New”开头的数据行。另外如果搜索字符串中涉及日期,其值用双#包含而不使用双单引号。

重载的Select 方法可包含第二个参数,控制搜索结果行的排序顺序。

strSortOrder=”City DESC” ;//搜索结果按City字段降序排列

tbl.Select(strFilter,strSortOrder);

重载的Select方法亦可包含第三个参数,指定DataViewRowState枚举的一个值,控制Select方法仅搜索指定状态的DataRow。

DataViewRowState dvrs=DataViewRowState.ModifiedCurrent;

tbl.Select(“”,””,dvrs);//前二个参数为空,仅使用第三个参数

2. DataView对象

DataTable对象的Select方法功能强大,但执行效率不高,而且Windows和Web窗体不支持绑定Select方法的返回值-DataRow对象数组。DataView对象解决了以上两点不足。DataView对象不维护自己的数据附本,当通过DataView访问数据时,它将返回存储在相应DataTable中的数据。

创建DataView对象

DataView对象必需与DataTable对象相关联,以下几种构造函数可以创建DataTable对象并与DataTable相关联。 DataTable tbl=new DataTable(“MyTable”);
DataView vue;
vue=new DataView();
vue.Table=tbl;
或 vue=new DataView(tbl);

[第1页]   [第2页]   [下一页]
您可以针对本文进行:[评论]  [收藏]  [推荐]  
我想发表评论:
用户名密码
  • 匿名发表
    验证码: