Pregunta

¿Es una buena idea para su reutilización en un conjunto de datos .NET? Lo que quiero decir es ... Tengo el siguiente código que las espirales de un gridview

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

Lo que estoy haciendo en el bucle es la creación de una nueva instancia del conjunto de datos. ¿No puedo llamar ds.Clear () y luego volver a utilizarlo a través de la ds.ReadXML ()?

¿Fue útil?

Solución

La semántica es diferente: DataSet.Clear borra todos los datos (filas), pero mantiene el esquema (tablas y relaciones).

En su muestra, parece que las tablas se crean a partir del método ReadXml (que se puede leer el esquema, así como los datos).

DataSet.Clear probablemente funcionaría todo el tiempo que esté seguro de todos los documentos XML tienen el mismo esquema, pero utilizando New es más robusto y expresa su intención mejor.

Sin embargo, si usted leía datos sólo, como en el siguiente ejemplo, DataSet.Clear podría ser una mejor elección, ya que evita que la generación repetidamente el esquema.

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 

Otros consejos

Usted pesa reutilización con otras consideraciones de rendimiento. En términos generales no hago optimizaciones de este tipo hasta que se vuelven necesarias. Y sólo si tengo los números para demostrar que se necesita.

Usted puede ser capaz de hacer eso, pero la creación de objetos es tan barato y no tiene riesgo de efectos secundarios, no hay ninguna razón para no crear el nuevo objeto.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top