ADO.NET——DataView

      DataView:可以说是一个视图,是在程序里的一个视图,它是数据源的一个视图,当我们成功拥有这个视图之后,可以利用各种筛选从视图中查询到有用的数据,反馈给用户

       要想了解一个东西得看的源头喽,下面看微软的官方解释



      三个构造函数:

DataView() 初始化 DataView 类的新实例。
DataView(DataTable)   使用指定的 DataView 初始化 DataTable 类的新实例。
DataView(DataTable, String, String, DataViewRowState)
 使用指定的 DataTable、RowFilter、Sort 和 DataViewRowState 初始化 DataView 类的新实例。



<span style="color:#ff0000;">RowStateFilter</span>
RowStateFilter:对视图的筛选控制,主要是对数据源的一些操作筛选

Sort:视图筛选器,主要是一些关于数据条件的限制

    下面说一些关于RowStateFilter的使用

生成一个数据源

  DataTable dataTable = new DataTable("dataTable");
            DataColumn  地方 = new DataColumn ("地方");   //先生成一个列
            dataTable.Columns.Add(地方);                  //加载列到dt中

            DataRow dataRow;
            for(int i=0;i<10;i++)                        //循环加载行到dt中
            {
                dataRow  = dataTable.NewRow();
                dataRow["地方"] = new string[] {" 1", "2", "3", "4", "5"};
                dataTable.Rows.Add(dataRow);

            }

提交数据源后,在对数据源进行修改
            dataTable.AcceptChanges();                //必须有这行代码,否则一下的<span style="font-family: Arial, Helvetica, sans-serif;">RowStateFilter将不起作用。</span>
         

            //create a DataView with the table
            DataView dv = new DataView(dataTable);

            //change one row's value
            dataTable.Rows[1]["地方"] = "Hello";
            //Add one row
            dataRow = dataTable.NewRow();
            dataRow["地方"] = "Word";
            dataTable.Rows.Add(dataRow);
            dv.RowStateFilter = DataViewRowState.Added | DataViewRowState.ModifiedCurrent;
            dataTable.Rows[1].Delete();
            dataTable.Rows[2].Delete();
            dataTable.Rows[3].Delete();

RowStateFilter的使用
           <span style="color:#ff0000;"> dataTable.Rows[4]["地方"] = "jjjjj";
            //设置dataview显示的过滤条件,下面的条件是只显更改行与新行、已修改行、当前行
            //dv.RowStateFilter = DataViewRowState.CurrentRows;
            //this.GridView1 .DataSource = dv ;
            //this.GridView1 .DataBind();
            //设置dataview显示的过滤条件,未更改的行
           //dv.RowStateFilter = DataViewRowState.Unchanged;
           // this.GridView1 .DataSource = dv ;
           // this.GridView1 .DataBind();
           // //设置dataview显示的过滤条件,未更改行,已删除行
            dv.RowStateFilter = DataViewRowState.Deleted;
            this.GridView1.DataSource = dv;
            this.GridView1.DataBind();</span>

      Sort的使用:使用该条件时要注意数据类型。

 DataView dv = new DataView( DataTable);
            c = "Convert(pID,'System.String') like '%'";    //筛选器,这块和数据库SQL条件语句极为相似,同出一家。
            dv.RowFilter = c;                           // <span style="font-family: Arial, Helvetica, sans-serif;">Convert(pID,'System.String')  把pID列转换为string类型</span>             dv.Sort = "pID desc";                      //对pID列进行排序
            this.GridView1.DataSource = dv;
            this.GridView1.DataBind();


    总结:一直以来以为DataView是一个控件,原来是一个对象。其中这个对象还有很多的属性和方法需要去学习。总之,遇到了就得去用。就学习了。有其他观点和要分享的,积极探讨啊。


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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值