Tecnología

Inicio

Cómo convertir DataReader para DataSet

Aunque no existe una solución de un solo paso para la conversión de un DataReader directamente en un conjunto de datos en el Dot Net Framework de Microsoft, puede someterse a un proceso de múltiples pasos de la transformación de un programa mediante el acceso DataReader en una usando un conjunto de datos. Tanto DataReader y el conjunto de datos se obtienen a partir de un comando que encapsula una consulta de base de datos. Un DataReader devuelve la consulta da como resultado una fila a la vez mientras permanece conectado a la base de datos. Por el contrario, un conjunto de datos es autónomo y contiene todos los datos devueltos por la consulta. Para obtener un rendimiento, utilice el DataReader; para una mayor versatilidad, el conjunto de datos es generalmente una mejor opción.

Instrucciones

1 Busque el código que crea el DataReader. En Visual Basic, el código es como la siguiente:

01: Dim conn Como SqlConnection = Nada

02: cmd dévil como SqlCommand

03: rdr dévil como SqlDataReader = Nada

04: Dim campo1, campo2 As String

05:

06: Pruebe

07: conn = CreateConnection ()

08: cmd = New SqlCommand ( "procName", conn)

09: cmd.CommandType = CommandType.StoredProcedure

10:

11: rdr = cmd.ExecuteReader

12: Mientras rdr.Read

13: campo1 = rdr.GetString (0)

14: campo2 = rdr.GetString (1)

15: ...

16: Mientras Fin

17:

18: Catch ex As Exception

19: Throw

20:

21: Por último

22: rdr.Close ()

23: conn.Close ()

24: Try End

Tenga en cuenta que en este ejemplo, se utiliza la versión SQL de la DataReader. El mismo código funciona para OLE DB y otras clases DataReader.

2 Sustituir a la declaración del DataReader en la línea 3 con una nueva declaración de un conjunto de datos denominado ds:

01: Dim conn Como SqlConnection = Nada

02: cmd dévil como SqlCommand

03> ds Dim como nuevo conjunto de datos

04: Dim campo1, campo2 As String

05:

3 Reemplazar las referencias al DataReader en las líneas 11 a 16 con el nuevo código que crea y configura un adaptador de datos:

06: Pruebe

07: conn = CreateConnection ()

08: cmd = New SqlCommand ( "procName", conn)

09: cmd.CommandType = CommandType.StoredProcedure

10:

11> dap Dim As New SqlDataAdapter

12> = cmd dap.SelectCommand

El SqlDataAdapter es un objeto auxiliar que se utiliza para mover datos de un lado a otro de un conjunto de datos. Después de que el objeto se crea, la propiedad SelectCommand se establece en el mismo objeto de comando que se utiliza para crear el DataReader.

4 Utilice método Fill del DataAdapter para llenar el conjunto de datos:

13> dap.Fill (ds)

5 Cerrar la conexión antes de procesar los datos; ya que el conjunto de datos contiene ahora todos los datos devueltos por el adaptador de datos, el cierre de la conexión es buena práctica. Asimismo, recuerda a eliminar la línea que cierra el DataReader (línea 22):

18: Catch ex As Exception

19: Throw

20:

21: Por último

23: conn.Close ()

24: Try End

6 Procesar los datos, recuperándolo de la colección Fila del conjunto de datos de la siguiente manera:

25> Para cada fila Como DataRow En ds.Tables (0) .Rows

26> campo1 = fila ( "Campo1")

27> campo2 = fila ( "Campo2")

28> ...

29> ...

30> Siguiente