El SqlDataAdapter actúa como puente entre un DataSet y una base de datos SQL Server para recuperar y guardar datos. Permite llenar un DataSet con datos de la base de datos y actualizar la base de datos con cualquier cambio realizado en el DataSet mediante el uso de comandos SQL como Fill y Update.
2. DEFINICIÓN:
Representa un conjunto de comandos de datos y una conexión de base de datos que
se utilizan para rellenar un DataSet y actualizar una base de datos de SQL Server. Esta
clase no se puede heredar. SqlDataAdapter, Se utiliza como un puente entre DataSet y
SQL Server para recuperar y guardar datos. SqlDataAdapter proporciona este puente
mediante la asignación de Fill, que cambia los datos en DataSet para que coincidan
con los datos del origen de datos; y Update, que cambia los datos en el origen de
datos para que coincidan con los datos en DataSet utilizando las instrucciones de
Transact-SQL en el origen de datos adecuado.
3. EN QUE CASOS SE DEBE USAR UN
SqlDataAdapter:
Con el SqlDataAdapter se puede hacer una consulta general y se utiliza si requieres
ejecutar más de un tipo de sentencia Sql o si trabajarás en escenarios
desconectados.
DbDataAdapter.Fill. Rellena un objeto DataSet o un objeto DataTable.
DbDataAdapter.Update. Llama a las instrucciones INSERT, UPDATE o DELETE
respectivas para cada fila insertada, actualizada o eliminada en DataSet.
Transact SQL .Es el lenguaje de programación que proporciona SQL Server para
ampliar SQL con los elementos característicos de los lenguajes de programación:
variables, sentencias de control de flujo.
7. EJEMPLO:
En el ejemplo siguiente se usa el SqlCommand, SqlDataAdapter, y SqlConnection para seleccionar los
registros de una base de datos y rellenar una DataSet con las filas seleccionadas.
Public Function SelectRows( _
ByVal dataSet As DataSet, ByVal connectionString As
String, _
ByVal queryString As String) As DataSet
Using connection As New SqlConnection(connectionString)
Dim adapter As New SqlDataAdapter()
adapter.SelectCommand = New SqlCommand( _
queryString, connection)
adapter.Fill(dataSet)
Return dataSet
End Using
End Function
8. RESUMEN
El objeto DataAdapter se puede utilizar con el objeto DataSet para cargar los datos de
una fuente de datos y puede desconectarse de la misma. El usuario puede entonces
utilizar y manipular los datos. Cuando los datos necesitan ser actualizados contra la
fuente de datos, se utiliza un objeto DataAdapter para volver a conectarse y actualizar
la fuente de datos. El objeto DataSet representa una copia local de datos de una
fuente de datos. Cuando se utiliza sin una fuente de datos, el objeto DataSet resulta
útil para guardar datos locales a los cuales pueden acceder los formularios Web
Forms.
Sin embargo, para actuar como una herramienta de gestión de datos real, un objeto
DataSet debe poder interactuar con una o más fuentes de datos. Para conseguir esta
interacción, el .NET Framework proporciona las clases SqlDataAdapter y
OleDbDataAdapter.
9. RECOMENDACIONES
Si se va a utilizar procedimientos almacenados de SQL Server para editar o eliminar
datos con DataAdapter, asegúrese de que no utiliza SET NOCOUNT ON en la
definición del procedimiento almacenado. Esto hace que el recuento de filas
afectadas vuelva a cero, lo que DataAdapter interpreta como un conflicto de
simultaneidad.
Una InvalidOperationException se producirá si el Fill se llama al método y la tabla
contiene un tipo definido por el usuario que no está disponible en el equipo
cliente.
El SqlDataAdapter se utiliza junto con SqlConnection y SqlCommand para
aumentar el rendimiento al conectarse a una base de datos de SQL Server.
10. CONCLUSIONES
El SqlDataAdapter, actúa como puente entre un DataSet y SQL Server para
recuperar y guardar datos y proporciona este puente mediante la asignación
de Fill, que cambia los datos en el DataSet coincidan con los datos del origen de
datos, y Update, que cambia los datos del origen de datos coincidan con los datos
en el DataSet, mediante las instrucciones de Transact-SQL adecuadas en el origen
de datos.
La actualización se realiza por fila. Para cada fila insertada, modificada y eliminada,
el Update método determina el tipo de cambio que se ha realizado en ella
(Insert,Update, o Delete). Según el tipo de cambio que se haya ejecutado,
el Insert, Update, o Delete plantilla del comando se ejecuta para propagar la fila
modificada al origen de datos.
Cuando el SqlDataAdapter rellena un DataSet, crea las tablas y columnas
necesarias para los datos devueltos si todavía no existen.