在.net中重用DataSet

时间:2010-02-24 21:07:24

标签: .net dataset reusability

在.net中重用数据集是个好主意吗?我的意思是......我有以下代码循环gridview

For Each row in GridView
  ds = New DataSet
  ds.ReadXML(GetStream(row.Field))
  ... export the dataset
Next

我在循环中正在做的是创建DataSet的新实例。我不能只调用ds.Clear()然后通过ds.ReadXML()重用它吗?

3 个答案:

答案 0 :(得分:2)

您可以将重用与其他性能考虑因素相结合。一般来说,在有必要之前,我不做这样的优化。然后,只有我有数字来证明它是必要的。

答案 1 :(得分:2)

语义不同:DataSet.Clear删除所有数据(行),但保留模式(表和关系)。

在您的示例中,看起来这些表是从ReadXml方法创建的(可以读取模式和数据)。

只要您确定所有Xml文档都具有相同的架构,

DataSet.Clear可能会有效,但使用New会更强大并更好地表达您的意图。

但是,如果您只是阅读数据,如下例所示,DataSet.Clear可能是更好的选择,因为它可以避免您重复生成架构。

ds = New DataSet 
... code to create the schema (Tables, Columns, Relations)

For Each row in GridView 
  ds.ReadXML(GetStream(row.Field), XmlReadMode.IgnoreSchema) 
  ... export the dataset 
  ds.Clear
Next 

答案 2 :(得分:1)

您可能能够做到这一点,但是对象创建是如此便宜并且您没有副作用的风险,没有任何理由不创建新对象。