ADO.NET之DataTable与DataView对象

DataTable对象的搜索,排序


基于主键的查找

DataTable tb=new DataTable();
//设置主键
tb.PrimaryKey=new DataRow[]{tb.Columns["priKey"]};
DataRow row=tb.Rows.Find("...");


//多列约束的查找
tb.PrimaryKey=new DataRow[]{tb.Columns["priKey1"],tb.Cloumns["priKey2"]};
object obj=new object[]{"key1","key2"};
DataRow row=tb.Rows.Find(obj);


动态查找
DataRow[] rows=tb.Select("id=001 and name='xiaoming'"); 
  //Slect返回的是DataRow数组 ""内字段相当与sql中的where之句

DataViewRowState dvrs=DataViewRowState.ModifiedOriginal|DataViewRowState.Deleted;
DataRow[] rows=tb.Select("where","order by".dvrs);
//DataRow.Select()方法是重载的,order by是sql中order by子句,dvrs是tb中row值状态的枚举

DataView对象搜索,排序
首先说明DataView 对象不维护自己的数据副本,等通过DataView访问数据时,DataView将返回DataTable中的数据.

Find方法
DataView对象的Find方法返回的不是DataRow或DataRowView对象,而返回DataView中符合条件的整形索引,不满足Find条件即返回-1;
DataView vue=new DataView(tb);

vue.Sort="ColumnKey";
int rowsIndex=vue.Find("...");
if(rowsIndex==-1)
  //not found
else
  //found; write(vue[rowsIndex]["..."]);

Finds方法,获取多值


vue.Sort="ColumnKey";
DataRow[] rows=vue.FindRows("...");
if(rows.Length==0)
   //not found
else
   //foreach 获取
   foreach(DataRowView row in rows)
      Console.Write(row["..."]);

DataRowView对象的修改
DataView vue=new DataView(tb);

//添加新行
DataRowView row=vue.AddNew();
row[".."]="..";
  ........
row.EndEdit();

//修改行
row.BeginEdit();
row["..."]="...";
row.EndEdit();

//删除行
row.Delete():

DataView中的Select方法
DataViewRowState dvrs=DataViewRowState.ModifiedOriginal|DataViewRowState.Deleted;


DataView vue=new DataView(tb,"where","order by",dvrs);


DataView vue;
vue.Table=tb;
vue.RowFilter="where";
vue.Sort="order by";
vue.RowStateFilter=dvrs;

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值