首页 / 知识

关于c#:Datatable与Dataset

2023-04-11 16:16:00

关于c#:Datatable与Dataset

Datatable vs Dataset

我目前使用DataTable从数据库中获取结果,可以在我的代码中使用该结果。

但是,网络上的许多示例都显示使用DataSet代替,并通过collections方法访问表。

使用数据集或数据表作为SQL结果的存储方法是否有任何优势(无论是性能还是其他方面)?


这实际上取决于您要带回的数据类型。由于一个DataSet(实际上)只是一个DataTable对象的集合,因此您可以将多个不同的数据集返回到一个单一的,因此更易于管理的对象中。

在性能方面,未优化的查询比.NET构造的"错误"选择更有可能导致效率低下。至少,这是我的经验。


一个主要区别是数据集可以容纳多个表,并且您可以定义这些表之间的关系。

如果您只返回一个结果集,尽管我认为DataTable会更优化。我认为要提供DataSet的功能并跟踪多个DataTable,必须有一些开销(小额)。


在1.x中,曾经有DataTables无法做到的事情,而DataSets却无法做到(不记得确切是什么)。在2.x中所做的所有更改。我的猜测是这就是为什么许多示例仍使用数据集的原因。 DataTables应该更快,因为它们更轻巧。如果仅提取单个结果集,则这是您在这两者之间的最佳选择。


DataSet的一项功能是,如果您可以在存储过程中调用多个select语句,则DataSet将为每个存储一个DataTable。


填充DataTable时可以使用一些优化方法,例如调用BeginLoadData(),插入数据,然后调用EndLoadData()。这将关闭DataTable中的某些内部行为,例如索引维护等。有关更多详细信息,请参见本文。


DataTable对象将表格数据表示为行,列和约束的内存表格缓存。
DataSet由DataTable对象的集合组成,您可以使用DataRelation对象将它们彼此关联。


无论如何,当您只处理一个表时,我发现最大的实际区别是DataSet具有" HasChanges"方法,而DataTable没有。两者都有一个" GetChanges",因此您可以使用它并测试null。


网络显示方法访问表

最新内容

相关内容

热门文章

推荐文章

标签云

猜你喜欢