You are on page 1of 5

Informacin general sobre TableAdapter

http://msdn.microsoft.com/es-es/library/bz9tthwx(VS.90).aspx

Informacin general sobre TableAdapter


Visual Studio 2008

Actualizacin: noviembre 2007 Los TableAdapters comunican la aplicacin con una base de datos. Ms especficamente, un TableAdapter se conecta con una base de datos, ejecuta consultas o procedimientos almacenados, y devuelve una nueva tabla de datos rellena con los datos devueltos o rellena una DataTable existente con los datos devueltos. Los TableAdapters tambin se utilizan para devolver los datos actualizados desde la aplicacin a la base de datos. Los usuarios de versiones anteriores de Visual Studio pueden pensar en un TableAdapter como un DataAdapter que lleva integrado un objeto de conexin y la capacidad de contener varias consultas. Cada consulta agregada a un TableAdapter se expone como un mtodo pblico al que se llama simplemente como a cualquier otro mtodo o funcin de un objeto. Adems de la funcionalidad estndar del control DataAdapter, los objetos TableAdapter proporcionan mtodos con tipo adicionales que encapsulan consultas que comparten un esquema comn con el control DataTable con tipo asociado. Dicho de otra forma, puede tener tantas consultas como desee en un TableAdapter, siempre y cuando devuelvan datos que cumplan el mismo esquema. En la versin anterior de Visual Studio, se utilizaron Adaptadores de datos ADO.NET para comunicar una aplicacin con una base de datos. Aunque los adaptadores de datos siguen siendo un componente principal de .Proveedores de datos de .NET Framework (ADO.NET), los objetos TableAdapter son componentes generados por el diseador que mejoran la funcionalidad de los controles DataAdapter. Estos objetos suelen contener los mtodos Fill y Update para obtener y actualizar los datos en una base de datos. Los TableAdapter se crean con el Diseador de DataSet dentro de los conjuntos de datos con establecimiento inflexible de tipos. Con Asistente para la configuracin de orgenes de datos puede crear objetos TableAdapter durante la creacin de un nuevo conjunto de datos. Tambin puede crearlos en conjuntos de datos existentes con el Asistente para la configuracin de TableAdapter o arrastrando los objetos de base de datos del Explorador de servidores al Diseador de DataSet. Para obtener ms informacin, vea Cmo: Crear TableAdapters. Aunque los objetos TableAdapter se disean con el Diseador de DataSet, las clases TableAdapter generadas no se generan como clases anidadas de DataSet. Se encuentran en un espacio de nombres separado y especfico para cada conjunto de datos. Por ejemplo, si tiene un conjunto de datos denominado NorthwindDataSet, los TableAdapter asociados al control DataTable en NorthwindDataSet estaran en el espacio de nombres NorthwindDataSetTableAdapters. Para tener acceso a un TableAdapter determinado mediante programacin, debe declarar una nueva instancia del TableAdapter. Por ejemplo: VB Dim northwindDataSet As New NorthwindDataSet() Dim customersTableAdapter As New NorthwindDataSetTableAdapters.CustomersTableAdapter() customersTableAdapter.Fill(northwindDataSet.Customers)

Esquema de DataTable asociado


Al crear un objeto TableAdapter, se utiliza la consulta inicial o el procedimiento almacenado para definir el esquema de DataTable asociado al TableAdapter. Esta consulta inicial o procedimiento almacenado se ejecuta llamando al mtodo principal Fill del TableAdapter (que rellena la DataTable asociada al TableAdapter). Cualquier cambio realizado en la consulta principal del

1 de 5

02/12/2010 10:16

Informacin general sobre TableAdapter

http://msdn.microsoft.com/es-es/library/bz9tthwx(VS.90).aspx

TableAdapter se refleja en el esquema de la tabla de datos asociada. Por ejemplo, al quitar una columna de la consulta principal, se quita la columna de la tabla de datos asociada. Si alguna consulta adicional del TableAdapter utiliza instrucciones SQL que devuelven columnas que no estn en la consulta principal, el diseador intentar sincronizar los cambios de columna entre la consulta principal y cualquier consulta adicional. Para obtener ms informacin, vea Cmo: Editar TableAdapters.

Comandos de actualizacin de TableAdapter


La funcionalidad de actualizacin de un objeto TableAdapter depende de la cantidad de informacin disponible, en funcin de la consulta principal proporcionada en el Asistente de TableAdapter. Por ejemplo, los TableAdapter configurados para obtener valores de varias tablas (consultas JOIN), valores escalares, vistas o los resultados de funciones de agregado no se crean inicialmente con la capacidad de enviar actualizaciones a la base de datos subyacente. Sin embargo, puede configurar manualmente los comandos INSERT, UPDATE y DELETE en la ventana Propiedades.

Consultas de TableAdapter

A diferencia de los adaptadores de datos estndar, los TableAdapter pueden contener varias consultas que rellenan las tablas de datos asociadas. Puede definir tantas consultas para un TableAdapter como requiera la aplicacin, con tal de que cada consulta devuelva datos que cumplan el mismo esquema que la tabla de datos asociada. De esta forma se habilita la carga de datos que satisface distintos criterios. Por ejemplo, si la aplicacin contiene una tabla de clientes, puede crear una consulta para rellenar la tabla con todos los clientes cuyo nombre comience con una letra determinada y otra consulta para rellenar la tabla con todos los clientes del mismo estado o provincia. Para rellenar una tabla Customers con clientes de un estado concreto, puede crear una consulta FillByState que toma un parmetro para el valor del estado: SELECT * FROM Customers WHERE State = @State. Ejecute la consulta llamando al mtodo FillByState y pasando un valor del parmetro como: CustomerTableAdapter.FillByState("WA"). Para obtener ms informacin, vea Cmo: Crear consultas de TableAdapter.

2 de 5

02/12/2010 10:16

Informacin general sobre TableAdapter

http://msdn.microsoft.com/es-es/library/bz9tthwx(VS.90).aspx

Adems de consultas que devuelven datos del mismo esquema como tabla de datos del TableAdapter, tambin puede agregar consultas que devuelvan valores escalares (nicos). Por ejemplo, la creacin de una consulta que devuelve un recuento de clientes (SELECT Count(*) From Customers) es una consulta vlida para CustomersTableAdapter, aunque los datos devueltos no cumplan el esquema de la tabla.

Propiedad ClearBeforeFill
El objeto TableAdapter agrega una propiedad no disponible en la clase base DataAdapter. De manera predeterminada, cada vez que ejecuta una consulta para rellenar la tabla de datos del TableAdapter, se borran los datos y slo se cargan en la tabla los resultados de la consulta. Establezca la propiedad ClearBeforeFill del TableAdapter en false si desea agregar o combinar los datos devueltos de una consulta con los datos existentes en una tabla de datos. Sin tener en cuenta si borra los datos, es necesario enviar explcitamente las actualizaciones a la base de datos, si lo desea. Por tanto, recuerde guardar los cambios realizados en los datos de la tabla antes de ejecutar otra consulta que rellene la tabla. Para obtener ms informacin, vea Cmo: Actualizar datos utilizando un TableAdapter.

Herencia de TableAdapter
Los TableAdapter amplan la funcionalidad de los adaptadores de datos estndar encapsulando un control DataAdapter. De manera predeterminada, el objeto TableAdapter hereda de Component y no se puede convertir a la clase DataAdapter. Convertir un TableAdapter a un control DataAdapter produce un InvalidCastException. Para cambiar la clase base de un TableAdapter, en el Diseador de DataSet se escribe una clase que derive de Component en la propiedad Base Class del TableAdapter.

Mtodos y propiedades de TableAdapter


La clase TableAdapter no forma parte de .NET Framework y como tal, no puede buscarla en la documentacin ni en el Explorador de objetos. Se crea en tiempo de diseo cuando utiliza uno de los asistentes anteriormente mencionados. El nombre asignado a un TableAdapter en el momento de su creacin se basa en el nombre de la tabla con la que est trabajando. Por ejemplo, si se crea un TableAdapter basado en una tabla de una base de datos denominada Orders, los TableAdapter se denominan en consecuencia OrdersTableAdapter. Se puede cambiar el nombre de clase del TableAdapter utilizando la propiedad Name en el Diseador de DataSet. A continuacin se muestran los mtodos y propiedades de TableAdapter ms utilizados:

Miembro

Descripcin

TableAdapter.Fill

Rellena la tabla de datos asociada del TableAdapter con los resultados del comando SELECT del TableAdapter. Para obtener ms informacin, vea Cmo: Llenar un conjunto de datos con datos.

TableAdapter.Update

Enva los cambios de vuelta a la base de datos y devuelve un entero que representa el nmero de filas a las que afecta la actualizacin. Para obtener ms informacin, vea Cmo: Actualizar datos utilizando un TableAdapter.

TableAdapter.GetData

Devuelve una nueva DataTable rellena con datos.

3 de 5

02/12/2010 10:16

Informacin general sobre TableAdapter

http://msdn.microsoft.com/es-es/library/bz9tthwx(VS.90).aspx

TableAdapter.Insert

Crea una nueva fila en la tabla de datos. Para obtener ms informacin, vea Cmo: Agregar filas a un DataTable.

TableAdapter.ClearBeforeFill Determina si se vaca una tabla de datos antes de llamar a uno de los mtodos Fill.

Mtodo de actualizacin de TableAdapter


Los TableAdapter utilizan comandos de datos para leer y escribir en la base de datos. La consulta (principal) Fill inicial de TableAdapter se utiliza como base para crear el esquema de la tabla de datos asociada, as como los comandos InsertCommand, UpdateCommand y DeleteCommand asociados al mtodo TableAdapter.Update. Esto significa que al llamar al mtodo Update de TableAdapter se ejecutan las instrucciones creadas cuando el TableAdapter se configur originalmente, y no se agreg ninguna de las consultas adicionales al Asistente para la configuracin de consultas de TableAdapter. Cuando utiliza un TableAdapter, ste realiza las mismas operaciones con los comandos que realizara habitualmente. Por ejemplo, cuando se llama al mtodo Fill del adaptador, ste ejecuta el comando de datos en la propiedad SelectCommand y utiliza un lector de datos (por ejemplo, SqlDataReader) para cargar el conjunto de resultados en la tabla de datos. De igual forma, cuando se llama al mtodo Update del adaptador, se ejecuta el comando adecuado (en las propiedades UpdateCommand, InsertCommand y DeleteCommand) para cada registro modificado de la tabla de datos.

Nota:
Si hay bastante informacin en la consulta principal, se crean los comandos InsertCommand, UpdateCommand y DeleteCommand de manera predeterminada cuando se genera el TableAdapter. Si la consulta principal de TableAdapter es ms que una instruccin SELECT de una nica tabla, es posible que el diseador no pueda generar los comandos InsertCommand, UpdateCommand y DeleteCommand. Si no se han generado estos comandos, puede recibir un error al ejecutar el mtodo TableAdapter.Update.

TableAdapter GenerateDbDirectMethods
Adems de con los comandos InsertCommand, UpdateCommand y DeleteCommand, los TableAdapters se crean con mtodos que se pueden ejecutar directamente en la base de datos. Se puede llamar a estos mtodos (TableAdapter.Insert, TableAdapter.Update y TableAdapter.Delete) para manipular los datos directamente en la base de datos. Si no desea crear estos mtodos directos, establezca la propiedad GenerateDbDirectMethods del TableAdapter en false (en la ventana Propiedades). Las consultas adicionales agregadas al objeto TableAdapter son consultas independientes y no generan estos mtodos.

Compatibilidad del objeto TableAdapter con los tipos que aceptan valores NULL
Los TableAdapters admiten tipos que aceptan valores NULL Nullable(Of T) y T?. Para obtener ms informacin sobre los tipos que aceptan valores NULL, vea Tipos de valor que aceptan valores NULL. Para obtener ms informacin sobre los tipos que aceptan valores NULL en C#, vea Utilizar tipos que aceptan valores NULL (Gua de programacin de C#).

Vea tambin
Tareas

4 de 5

02/12/2010 10:16

Informacin general sobre TableAdapter

http://msdn.microsoft.com/es-es/library/bz9tthwx(VS.90).aspx

Cmo: Conectarse a los datos de una base de datos Tutorial: Conexin a los datos de una base de datos Conceptos Lo nuevo en datos Otros recursos Tutoriales sobre datos Preparar la aplicacin para recibir datos Buscar datos en la aplicacin Mostrar datos en formularios en aplicaciones para Windows Modificar datos en la aplicacin Validar datos Guardar datos

Contenido de la comunidad

5 de 5

02/12/2010 10:16