在 .net 中重用数据集是个好主意吗?我的意思是......我有以下循环gridview的代码
For Each row in GridView
ds = New DataSet
ds.ReadXML(GetStream(row.Field))
... export the dataset
Next
我在循环中所做的是创建 DataSet 的新实例。我不能只调用 ds.Clear() 然后通过 ds.ReadXML() 重用它吗?
在 .net 中重用数据集是个好主意吗?我的意思是......我有以下循环gridview的代码
For Each row in GridView
ds = New DataSet
ds.ReadXML(GetStream(row.Field))
... export the dataset
Next
我在循环中所做的是创建 DataSet 的新实例。我不能只调用 ds.Clear() 然后通过 ds.ReadXML() 重用它吗?
您权衡重用与其他性能考虑因素。一般来说,在有必要之前我不会做这样的优化。然后只有当我有数字来证明它是必要的。
语义不同:DataSet.Clear
删除所有数据(行),但保留模式(表和关系)。
在您的示例中,看起来表是从 ReadXml 方法(可以读取模式和数据)创建的。
DataSet.Clear
只要您确定所有 Xml 文档都具有相同的模式,就可能会起作用,但是 usingNew
更健壮并且更好地表达您的意图。
但是,如果您只读取数据,如以下示例所示,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
您也许可以这样做,但是创建对象的成本很低,而且您没有副作用的风险,没有任何理由不创建新对象。