Download Guia para trabajar con sqlserversinconexion

Document related concepts
no text concepts found
Transcript
Guía de como trabajar sin conexión con ADO.NET.
El siguiente ejemplo muestra como trabajar en modo desconectado, accediendo a datos de una base de
datos en SQL. Los pasos que se muestran a continuación son realizados con el asistente del entorno de
desarrollo del Visual Studio 2005.
Paso1:
Abra un nuevo proyecto de Windows
Paso2:
Verificar si están los objetos utilizados por ADO .NET para trabajar con bases de datos SQL, estos se
muestran en la ToolBox bajo el ítem Data.
La imagen a la izquierda muestra que no se encuentran los objetos, para agregarlos haga clic con el
botón secundario del ratón sobre el ítem Data y seleccione Choose Items... esto hará que se les muestre
la caja de dialogo Choose Toolbox Items:
Paso3:
Agregue al formulario el componente SqlDataAdapter, al agregar el componente se mostrara la caja de
dialogo donde crearemos la conexión a la base de datos, esta caja de dialogo se muestra a continuación:
Seleccione New Connection para crear la nueva cadena de conexión. Esta acción hará que se muestre la
caja de dialogo Add Connection, en la cual en Server name escribimos .\SqlExpress, luego en Log on
to the server ha de seleccionar Use Windows Authentication y por último seleccione la base de datos en
la zona de Connect to a database.
Una vez que ya tenemos la cadena de conexión presione Next lo que da lugar a que se muestre la caja
de dialogo Data Adapter Configuration Wizard.
En la caja de dialogo Data Adapter Configuration Wizard deje la opción por defecto para que podamos
crear una consulta SQL y presione Next.
En esta caja de dialogo se escribirá la consulta SQL “SELECT nombre, direccion, telefono,
observaciones FROM telefonos” y luego presione Next. Esto da lugar a una caja de dialogo que
muestra el resumen del DataAdapter y presionamos Finish.
Paso4:
Selecione el DataAdapter que acabamos de agregar al formulario y en el menú Data seleccione
Generate DataSet y se mostrara la siguiente caja de dialogo.
En la caja de dialogo Generate Dataset haga clic en OK, esto dara lugar a que se cree el DataSet a partir
del
DataAdapter.
Paso5:
Agregue un DataGridView al formulario, este control se encuentra bajo el item Data del Toolbox como
se muestra en la siguiente imagen.
Paso6:
Haga clic en la lista de tareas del DataGridView y seleccione Choose Data Source tal como se muestra
en la
imagen.
Seleccione la tabla telefonos pertenecientes al DataSetTfnos, quedando la lista de tareas de la siguiente
forma
Paso7:
Agregar el código necesario para que los datos de la tabla teléfonos sean cargados en el formulario
cuando la
aplicación se carge. Para ello en el evento Form_Load del formulario agregue el siguiente código:
dataSetTfnos1.Clear();
sqlDataAdapter1.Fill(dataSetTfnos1);
La primer linea limpia el conjuto de datos y en la segunda el método Fill le dice al adaptador de datos
cual es el
conjunto de datos que se desea llenar.
Paso8:
Ejecutar la aplicación, al ejecutar la aplicación el resultado sera:
Observaciones:
Notara que existen los componentes sqlConnection1, sqlDataAdapter1, dataSetTfnos1 y
telefonosBindingSource. Estos componentes fueron agregados atomaticamente por el asistente del
diseñador,
los nombres a estos componentes pueden ser editados por el usuario a su conveniencia.
BindingSource
Hace de puente entre el control y el conjunto de datos y de esta manera se simplifica la conexión entre
el control y el origen de datos, es decir que toda la interacción con los datos puede ser llevada a cabo
utilizando la funcionalidad del BindingSource. La siguiente imagen muestra la funcionalidad del
componente
Control
BindingSource
Origen de Datos
El tipo de origen de datos se fija a través de uno de los siguientes mecanismos:
 Utilizando el método Add para añadir un elemento al componente
 Asignando a la propiedad DataSource una lista, un objeto o un tipo
En el ejemplo anterior el DataGridView tiene asociado en su propiedad DataSource al componente
telefonosBindingSource, por esa razón se muestran los datos en él. Alternativa al asistente En este
apartado crearemos la misma aplicación que se mostro como ejemplo para el acceso a una base de
datos en modo desconectado, pero esta vez sin ayuda del asistente.
Paso1:
Cree un nuevo proyecto con el nombre que usted guste, luego desde la caja de herramientas arrastre un
objeto SqlConnection al formulario y modifique la propiedad ConnectionString del objeto conexión
añadiendo la siguiente cadena:
Data source=.\\sqlexpress; Initial catalog=db_telefonos;Integrated security=true”
El código generado por el asistente es:
private System.Data.SqlClient.SqlConnection sqlConnection1;
this.sqlConnection1 = new System.Data.SqlClient.SqlConnection();
this.sqlConnection1.ConnectionString = "Data source=.\\sqlexpress; Initial
catalog=bd_telefonos;Integrated security=true";
Paso2:
Agregue un objeto SqlDataAdapter al formulario, esta acción genera el siguiente código:
//Declaración de los objetos que se encapsulan en el DataAdapter
private System.Data.SqlClient.SqlCommand sqlSelectCommand1;
private System.Data.SqlClient.SqlCommand sqlInsertCommand1;
private System.Data.SqlClient.SqlCommand sqlUpdateCommand1;
private System.Data.SqlClient.SqlCommand sqlDeleteCommand1;
//Objeto DataAdapter
private System.Data.SqlClient.SqlDataAdapter sqlDataAdapter1;
this.sqlSelectCommand1= new System.Data.SqlClient.SqlCommand();
this.sqlInsertCommand1= new System.Data.SqlClient.SqlCommand();
this.sqlUpdateCommand1= new System.Data.SqlClient.SqlCommand();
this.sqlDeleteCommand1= new System.Data.SqlClient.SqlCommand();
this.sqlDataAdapter1 =new System.Data.SqlClient.SqlDataAdapter();
En la ventana de propiedades del DataAdapter ponga la propiedad Connection perteneciente a la
propiedad SelectCommand del DataAdapter al valor slqConnection1 (Objeto conexión creado
anteriormente), esto se muestra en la siguiente imagen.
Esta acción genera el siguiente código
this.sqlSelectCommand1.Connection = this.sqlConnection1;
Paso3:
Arrastre el control DataSet al formulario y se mostrara la siguiente caja de dialogo
En la cual elegimos la opción Untyped dataset (dataset no definido), lo que añadirá el siguiente
código:
private System.Data.DataSet dataSet1;
this.dataSet1 = new System.Data.DataSet();
this.dataSet1.DataSetName = "NewDataSet";
Paso4:
Agregue un DataGridView al formulario, lo que añade el siguiente código:
private System.Windows.Forms.DataGridView dataGridView1;
this.dataGridView1 = new System.Windows.Forms.DataGridView();
Paso5:
Obtener los datos desde el origen, agregamos el método que responderá al evento Load del
formulario, tal y como se muestra a continuación:
private void Form1_Load(object sender, EventArgs e)
{
sqlSelectCommand1.CommandText = "SELECT * FROM telefonos";
sqlDataAdapter1.Fill(dataSet1, "telefonos");
dataGridView1.DataSource = dataSet1.Tables["telefonos"];
}
El método Fill recupera los datos de las filas del origen de datos mediante el SelectCommand del
adaptador de datos (DataAdapter)
Paso6:
Ejecutar la aplicación, vera que se obtienen los mismos resultados que en el ejemplo anterior.
BIBLIOGRAFIA
Enciclopedia de Microsoft Visual C#
Francisco Javier Ceballos.