使用DataView对象显示数据

该对象表示对DataSet中的数据表的一种查看方式,系统默认的方式是将数据以表格的形式排列,并且数据是根据从数据表中读取数据时行排列的顺序,通常和涉及数据库时的Sort Order或是在SQL语句中定义的排列依据(升序或降序等)。

    使用DataView时候,可以根据不同的实际情况,来使用不同的排序依据(Sort)、过滤条件(Filter)或是查找方法(Search)。

DataView对象用于表示内存中的数据库表视图。使用DataView对象可以创建一个可排序、可过滤的DataTable视图。

DataView对象支持下面三个非常重要的属性。

Sort--用于对DataView所表示的数据行进行排序。

RowFilter--用于对DataView所表示的数据行进行过滤。

RowStateFilter--用于对DataView所表示的数据行依照行状态进行排序(例如,OriginalRows、CurrentRows和Unchanged)。

创建DataView对象最简单的方法是使用DataTable类公开的DefaultView属性,像下面这样:

Dim dataView1 As DataView = dataTable1.DefaultView;

DefaultView属性返回DataTable对象的一个未排序、未过滤的数据视图。

同时也可以使用DataView对象的构造函数,并通过传递一个DataTable对象、一个过滤条件、一个排序条件和一个DataViewRowState过滤条件,来直接实例化一个新的DataView对象。

DataView dataView1 = new DataView(dataTable1,   
"BoxOfficeTotals > 100000",
"Title ASC",
DataViewRowState.CurrentRows);

上面这个语句将会从表示数据库表Movies的DataTable对象上创建一个新的DataView对象。其中的数据将被过滤来只包含总票房大于 100 000美元的电影记录信息。同时,数据记录将按照电影标题进行升序排列。最后,其实所有实际的数据行都还是存在于DataTable对象中(而未出现的数据行并没有被删除)。

代码清单17-30中的页面示例如何使用DataView对象的方法。在代码清单17-32中,DataView对象缓存在服务器端的Session状态中。通过点击GridView控件中表头的链接,就可以对被缓存的DataView对象进行排序

private   void   Page_Load(object   sender,   System.EventArgs   e)  
        {  
        OleDbConnection   Conn=   new   OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;"  
  +"Data   Source="+Server.MapPath("regedit.mdb"));  
  string   strSQL   =   "select   *   from   regedit";  
  OleDbCommand   Comm=   new   OleDbCommand(strSQL,Conn);  
  OleDbDataAdapter   da=   new   OleDbDataAdapter();  
  da.SelectCommand   =   Comm;  
  Conn.Open();  
  DataSet   ds   =   new   DataSet();  
  da.Fill(ds,"regedit");  
  DataView   dv= ds.Tables["regedit"].DefaultView;  
  dv.RowFilter=   "年龄>22";  
  dv.Sort   ="年龄   desc";  
  Response.Write("满足条件的记录有:"+   dv.Count.ToString()   +   "条");  
  dg.DataSource   =   dv;  
  dg.DataBind();  
  Conn.Close();  
        }  

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值