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.