zoukankan      html  css  js  c++  java
  • DataView和DefaultView的理解

    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的用法

  • 相关阅读:
    VC++6.0程序打开文件内存错误解决方法
    c++ vc6.0环境sp6补丁
    Net 应用程序如何在32位操作系统下申请超过2G的内存
    DataTable 排序
    VC UI 界面库
    让CSS兼容IE和Firefox的技巧集合
    两句CSS属性让点击图片链接时的虚线框消失
    一个常用的表单文本框input输入提示
    Css优先级分析
    清除浮动四种方法
  • 原文地址:https://www.cnblogs.com/ZkbFighting/p/9247606.html
Copyright © 2011-2022 走看看