【问题标题】:Datatable VS dataview [duplicate]数据表VS数据视图[重复]
【发布时间】:2013-03-25 13:27:16
【问题描述】:

Hy , 我真的不明白 datatable 和 dataview 之间的区别,因为我们可以这样做:

   Dim dtb As New DataTable()
   Dim dtv As DataView = dtb.DefaultView

提前致谢。

【问题讨论】:

  • 我希望人们在投票后发表评论。人类从错误中吸取教训,但前提是他们知道错误是什么。
  • Nolonar ,我非常感谢您的评论。谢谢

标签: c# asp.net vb.net


【解决方案1】:

Datatable 是根据您从数据库中的查询提取的未排序和未过滤的 DataRows 集合。
DataView(您可以拥有多个)是相同数据的过滤和/或有序视图。

例如:

 using(SqlConnection cn = GetConnection())
 {
     cn.Open();
     SqlDataAdapter da = new SqlDataAdapter("SELECT * FROM Customers", cn);
     DataTable dt = new DataTable();
     da.Fill(dt);

     // At this point dt is filled with datarows extracted from the database in no particular order 
     // And the DefaultView presents the same record organization (or lack of), but...

     // Order on the default view by CustomerName
     dt.DefaultView.Sort = "CustomerName";
     foreach(DataRowView rv in dt.DefaultView)
          Console.WriteLine(rv["CustomerName"].ToString();

     // A new dataview with only a certain kind of customers ordered by name
     DataView dvSelectedCust = new DataView(dt, "CreditLevel = 1", "CustomerName", DataViewRowState.Unchanged);
     foreach(DataRowView rv in dvSelectedCust)
          Console.WriteLine(rv["CustomerName"],ToString();



 }

当然,创建和维护 DataView 会影响性能,因此您可以选择仅在真正需要时使用它

【讨论】:

    【解决方案2】:

    互联网上有很多与此相关的链接,但只是为了总结

    DataView 是用于排序、过滤、搜索、编辑和导航的 DataTable 的自定义视图。 DataView 不存储数据,而是表示其对应 DataTable 的连接视图。

    您可以在 VB 中查看简单的 DataView Example

    【讨论】:

      【解决方案3】:

      DataView 是用于过滤或应用表达式排序等的附加层。

      DataView包含RowFilter等运算符

      链接:http://msdn.microsoft.com/fr-fr/library/system.data.dataview.aspx

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2014-04-17
        • 1970-01-01
        • 2019-09-12
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-11-15
        • 2016-10-05
        相关资源
        最近更新 更多