Objetos DataAdapter (OLEDB/SQL) funciona como un puente entre el
objeto DataSet y los datos de origen. El uso del objeto SqlDataAdapter especfico del proveedor (junto con los objetos SqlCommand y SqlConnection asociados) permite aumentar el rendimiento global al trabajar con bases de datos de Microsoft SQL Server. Para otras bases de datos compatibles con OLE DB, se debe utilizar el objeto OleDbDataAdapter y los objetos OleDbCommand y OleDbConnection asociados. El objeto DataAdapter utiliza comandos para actualizar el origen de datos despus de hacer modificaciones en el objeto DataSet. Si se utiliza el mtodo Fill del objetoDataAdapter, se llama al comando SELECT; si se utiliza el mtodo Update se llama al comando INSERT, UPDATE o DELETE para cada fila modificada. Es posible establecer explcitamente estos comandos con el fin de controlar las instrucciones que se utilizan en tiempo de ejecucin para resolver cambios, incluido el uso de procedimientos almacenados. En escenarios ad-hoc, un objeto CommandBuilder puede generarlos en tiempo de ejecucin a partir de una instruccin de seleccin. Sin embargo, para generar en tiempo de ejecucin hay que hacer un viaje de ida y vuelta adicional al servidor con el fin de recopilar los metadatos necesarios; por tanto, si se proporcionan explcitamente los comandos INSERT, UPDATE y DELETE en tiempo de diseo, el rendimiento en tiempo de ejecucin mejorar.
Cuando utilizamos un objeto del tipo DataAdapter (por ejemplo SqlDataAdapter) ste se encarga de crear la conexin a la base de datos, abrir dicha conexin y despus de actualizar los datos tambin se encarga de cerrar la conexin. Y lo importante es que NUNCA necesitamos un objeto Connection especfico (e independiente) para hacer todo ese proceso de conexin, ya que el adaptador se encarga de todo ese tema por nosotros. Pero para que todo esto de las transacciones con un DataAdapter funcione, lo mejor es crear nuestro objeto Connection para poder obtener la transaccin por medio del mtodo BeginTransaction (a lo mejor hay otra forma ms fcil de hacerlo, pero esta es la que yo conozco y es la que te explico). parmetros con DataAdapter
DataAdapter dispone de cuatro propiedades que se utilizan para recuperar y actualizar datos en un origen de datos: la propiedad SelectCommand devuelve datos a partir del origen de datos; las propiedadesInsertCommand, UpdateCommand y DeleteCommand se utilizan para administrar cambios en el origen de datos. La propiedad SelectCommand se debe establecer antes de llamar al mtodo Fill de DataAdapter. Es necesario establecer las propiedades InsertCommand, UpdateCommand o DeleteCommand antes de llamar al mtodo Update del DataAdapter, en funcin de las modificaciones realizadas en los datos en el DataSet. Arquitectura
El DataAdapter administra varios objetos Command: SelectCommand DeleteCommand InsertCommand UpdateCommand mtodos principales
Fill: Este mtodo utiliza el DataReader para leer registros y a continuacin, este mtodo copia los registros en DataSet (o un objeto DataTable). Muchas aplicaciones (especialmente aplicaciones basadas en Web) slo requieren acceso de slo lectura a datos. De forma predeterminada, el DataAdapter recupera slo la cantidad mnima de esquema que es necesario, el nombre de columna y el tipo de datos para admitir operaciones de slo lectura). DataAdapter usa la propiedad SelectCommand para devolver un DataReader del que se leen los registros. FillSchema: Este mtodo consulta la base de datos de informacin de esquema de ser necesario. Esto incluye las columnas de clave, la aceptacin de valores NULL de columnas y etc. Para configurar el mtodo Fill para recuperar esta informacin de esquema adicional, establezca el valor de propiedad DataAdapter.MissingSchemaAction a MissingSchemaAction.AddWithKey.
Puede utilizar SelectCommand para devolver un DataReader del que se lee el esquema. Porque es costoso recuperar el esquema de DataSet, almacene el esquema como un archivo de Lenguaje de marcado extensible o utilice un DataSet con tipo. Update. Cuando actualiza la base de datos, el DataAdapter comprueba la propiedad RowState de cada objeto DataRow en el DataTable. Despus, el DataAdapter llama al DeleteCommand, al InsertCommand o a la propiedad UpdateCommand para cambiar a la base de datos segn corresponde. Puede enlazar el RowUpdating y los eventos RowUpdated para personalizar cmo procesa las actualizaciones DataAdapter.