ADO.NET——DataView

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

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



      三个构造函数:

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



RowStateFilter
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();                //必须有这行代码,否则一下的RowStateFilter将不起作用。
         

            //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的使用
            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();

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

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


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


你可能感兴趣的:(ADO.NET——DataView)