dataview和datatable有什么区别?

时间:2011-09-12 03:09:04

标签: c# .net ado.net

.Net中的DataView和DataTable有什么区别? 据我所知,DataView只是DataTable的错误表示。 我什么时候应该使用DataView?

提前致谢。

3 个答案:

答案 0 :(得分:45)

如果要运行查询并在控件中显示数据子集,DataView可以帮助您。这只是一个例子,看看MSDN example for DataView,它解释了你应该在DataTables中使用DataViews的位置......

<强>数据表

数据表是单个数据库表的内存中表示形式。您可以将其视为具有相同方式的列和行。 DataTable是ADO.NET库中的中心对象。使用DataTable的其他对象包括DataSet和DataView。

请查看MSDN DataTable class以获取更多详细信息。

<强>数据视图

数据视图是数据表的视图,有点像sql视图。它允许您对行进行过滤和排序 - 通常用于绑定到窗体控件。

此外,可以自定义DataView以显示DataTable中的数据子集。此功能允许您将两个控件绑定到同一个DataTable,但显示不同版本的数据。例如,一个控件可以绑定到显示表中所有行的DataView,而第二个控件可以配置为仅显示已从DataTable中删除的行。 DataTable还有一个DefaultView属性,它返回表的默认DataView。

查看MSDN DataView class了解更多详情。

答案 1 :(得分:6)

您可以使用DataView对DataTable进行过滤。例如,如果您有一个包含所有参数的DataSet,您可以使用DataView找到一个参数:

DataView dv = new DataView();
dv = new DataView(parameterDs.Tables[0], "ParameterName = '@" + parameter.Key + "'", string.Empty, DataViewRowState.CurrentRows);

答案 2 :(得分:6)

DataTable表示单表表示,而DataSet表示多表表示。

这意味着通过使用DataTable我们只能从数据库中保存一个表,如果我们使用DataSet,我们可以一次保存多个表...

DataView表示查看DataSet中可用的数据...(DataSet中的表格视图) 它用于查找记录,排序,过滤记录......使用DataView