DataView和DefaultView的理解

it2026-09-02  2

DefaultView 的作用(对DataSet查询出的来数据进行排序)(这个老哥的太长了)

DefaultView:默认视图。datatable.DefaultView获取整个表的视图(就像sql查询出来的那样子一样,一个数据集,差不多)

SqlConnection conn = new SqlConnection("server=.;database=mydata;uid=sa;pwd=123456;"); conn.Open(); SqlDataAdapter adp = new SqlDataAdapter(); adp.SelectCommand = new SqlCommand("select * from goods",conn); DataSet ds = new DataSet(); adp.Fill(ds, "goods"); //填充DataSet内存数扰库 Response.Write(ds.Tables[0].DefaultView.Count); //显增当前查询结果的总行数ds.Tables[0].DefaultView.Sort = "GoodsID Desc"; //这里设定排序的字段及方式(从红字可以看出,defaultView是在table的基础上进行行为的) ds.Tables[0].DefaultView.RowFilter = "Shopid = 1"; //设定过滤条件, 得到条件潢足为”ShopID =1 的所有数据” this.GridView1.DataSource = ds.Tables[0]; //绑定到gridview数据源 this.GridView1.DataBind();其中如果我们需要变更查询结结果, 例如得到所有goodsID字段大于10的数据, 则只需改变上面代码中的 ds.Tables[0].DefaultView.RowFilter = "Shopid = 1";  改为  ds.Tables[0].DefaultView.RowFilter = "goodsID > 10";

 

DatagridTC.DataSource = dtRst;(他是一个dt)DatagridTC.DataBind();在工作的时候,它等效于:

DatagridTC.DataSource = ds.Tables[0].DefaultView;DatagridTC.DataBind();

-----------------------------------------------------------------------------------------------------------------------------------

dataview

DataView dv = ds.Tables[0].DefaultView;

 dv.Sort = "TimeClass_Name, DateType, TCOrder";

DatagridTC.DataSource = dv; DatagridTC.DataBind();

因此大家在遇到需要排序或者过滤数据的时候,要多想想可否使用dataview来实现了。

dataview可以用于对你的datatable筛选,搜索,排序,编辑和导航。可以方便对databale的操作。

 

1 public datatable EditTable(datatable dataTable) 2 { 3   DataView dv = dataTable.DefaultView; 4   dv.RowFilter = "City='" + City + "' AND SpreadPos='" + SpreadPos + "' AND KeyWord Like '%" + Key + "%'";//可以看到rowfilter支持多条件查询和 like模糊查询,此外还支持下列聚合类型:Sum(求和) Avg(平均) Min(最小值) Max(最大值) Count(计数)StDev(统计标准偏差) Var(统计方差)。 5   dv.Sort = "CompanyName DESC";//排序 6   dataTableRes = dv.Table;//变成table 7   return dataTableRes ; 8 } View Code

 

 

 

都可以用于过滤,用于排序,都是dt的下一阶级

自己遇到的代码是排序:点击页眉进行排序

1 protected void Page_Load(object sender, EventArgs e) 2 { 3 if (!IsPostBack) 4 { 5 ViewState["SortOrder"] = "UName"; 6 ViewState["OrderDire"] = "ASC"; 7 } 8 } 9 10 11 protected void GridView1_Sorting(object sender, GridViewSortEventArgs e) 12 { 13 string sPage = e.SortExpression; 14 if (ViewState["SortOrder"].ToString() == sPage) 15 { 16 if (ViewState["OrderDire"].ToString() == "Desc") 17 ViewState["OrderDire"] = "ASC"; 18 else 19 ViewState["OrderDire"] = "Desc"; 20 } 21 else 22 { 23 ViewState["SortOrder"] = e.SortExpression; 24 } 25 bind(); 26 } 27 public void bind() 28 { 29 30 string sqlstr = "select * from UserInfo"; 31 sqlcon = new SqlConnection(sqlCon); 32 SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon); 33 DataSet myds = new DataSet(); 34 sqlcon.Open(); 35 myda.Fill(myds, "UserInfo"); 36 DataView view = myds.Tables["UserInfo"].DefaultView; 37 string sort = (string)ViewState["SortOrder"] + " " + (string)ViewState["OrderDire"]; 38 view.Sort = sort; 39 GridView1.DataSource = view; 40 GridView1.DataBind(); 41 sqlcon.Close(); 42 } View Code

 

 

相关链接:

DataView的用法

转载于:https://www.cnblogs.com/ZkbFighting/p/9247606.html

最新回复(0)