-
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