ADO: Estudio de los objetos automáticos (cuáles se pueden eliminar y cuáles no).
Siguiendo con nuestro repaso, vamos a hacer breves ejercicios para ver en detalle los objetos de ADO automáticos.
1. DataSet. No se puede borrar. Es dónde están los datos.
2. BindingSource: es un sincronizador. Tiene como origen un DataSet. El DataSet tiene tablas y relaciones (por ej.): debemos indicar en el DataMembrer qué componente del DataSet debemos mostrar (sincronizar, mejor dicho). ¿Qué hace el sincronizador? Al modificar un dato, el sincronizador hace que los elementos enlazados muestren los mismos datos. Si quiero los datos del mismo registro debemos mantener el sincronizador.
En el DataBinding (del TextBox donde aparecen los datos, por ej.) aparece el enlace con la BD correspondiente.
Si mostramos los datos en un DataGried es innecesaria la actualización: se podría borrar (con matices: en el ejercicio 030811Prescindible necesitamos el DataSource).
3. TableAdapter: su función es llenar el DataSet con datos. Igual que hacía el SQLTablaAdapter. Es un componente automático (no aparece en el cuadro de herramientas). El TableAdapter es genérico (sirve para todos: SQL, Oracle…): está limitado a devolver tablas. Et TableAdapter es el que introduce losd atos de una tabla en el DataSet… a través del método Fill [Me.nombre_del_DataSet.nombre_de_la_tabla]. Por tanto el TableAdapter es indispensable (descartamos su eliminación).
4. El TableAdapterManager es poco recomendable crearlo con código. Siempre da funcionalidades extendidas. Siempre asociado a un TableAdapter. TableAdapter o puede guardar datos: para ello necesita al TableAdapterManager ( es decir: actúa con INSERT, UPDATE y DELETE). Se puede borrar si sólo hacemos una consulta.
5. BindingNavigator. En el caso que sea innnecesaria la barra de navegación, podemos eliminarla. Los botones del navegador son editables. El único modificable es el SaveItem.
Proyecto 030811ADOPrescindible.
Añadimos la tabla de clientes de Almacén y vemos que al eliminar el DataSource se hace imposible la conexión.
Vamos a intentarlo resolvar al revés. Vamos al DataGriedView. En su DataSource elegimos “Otros orígenes de datos” y seleccionamos el DataSet del formulario. En ese momento desaparecerá el DataSource del formulario. Luego me voy al DataMember y selecciono la tabla que deseo visualizar.
De esta manera me basta con el DataSet y el TableAdapter.
Proyecto 030811ADOPrescindible2.
Si creamos un DataGriedView debajo de la tabla que hemos agregado. En su DataSource elegimos la relación del bindindSource. En ese momento aparecerán los registros relacionados con la tabla de arriba (“Clientes”): en este caso se trata de la tabla “Pedidos”.
De esta manera deebemos mantener el DataSet, el BindingSource, los TableAdapter correspondientes a cada una de las 2 tablas (las que aparecen en la relación) y el BindingSource de la relación FK.
Proyecto 030811ADOPrescindible3.
Colocamos 3 TextBox y un ComboBox. En éste último vamos a su botón irzdo de la caja y seleccionamos “elementos enlazados a datos”. Gracias a esta operación ya me aparece un DataSet, un TableAdapter y un DataSource.
Ahora voy a cada TextBox y en el Text de su DataBindings seleccionamos una de las columnas que queremos mostrar de la tabla “Clientes”: elegimos CIF, Nombre y Dirección parab cada uno de los 3 TextBox.
De esta manera ya tenemos sincronizados el ComboBox con los TextBox.
Luego probamos los objetos de la colección Me.CLIENTESBindingSource.
En concreto ensayamos con MovePrevious, MoveNext, Find y Filter. Lo hacemos con un botón para cada objeto.