Hy, 我真的不明白datatable和dataview之间的区别,因为我们可以做到:
Dim dtb As New DataTable()
Dim dtv As DataView = dtb.DefaultView
提前感谢。
答案 0 :(得分:11)
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会影响性能,因此您可以选择仅在您真正需要时使用它
答案 1 :(得分:2)
有许多与此相关的互联网链接,但总结
DataView是DataTable的自定义视图,用于排序,过滤,搜索,编辑和导航。 DataView不存储数据,而是表示其相应DataTable的连接视图。
您可以在VB中查看简单的DataView Example。
答案 2 :(得分:1)
DataView是用于过滤或应用表达式排序等的附加层。
DataView包含RowFilter
link:http://msdn.microsoft.com/fr-fr/library/system.data.dataview.aspx