Está en la página 1de 7

25/1/2017 Tutorial: 

acceso a datos sencillo en un formulario Windows Forms

Tutorial: acceso a datos sencillo en un


formulario Windows Forms
Visual Studio .NET 2003

Uno de los escenarios más habituales en el desarrollo de aplicaciones es mostrar datos en un formulario. Este tutorial
presenta un formulario Windows Forms sencillo que muestra datos de una sola tabla en una cuadrícula de datos. La
cuadrícula es editable y podrá realizar cambios en los datos y actualizar la base de datos. Aunque el resultado no es
complejo, el tutorial muestra muchos de los procedimientos básicos que utilizará cuando tenga acceso a datos con
formularios.

Para poder completar este tutorial, necesitará:

Acceso a un servidor con la base de datos de ejemplo Pubs de SQL Server.

El tutorial está dividido en varias partes más pequeñas:

Crear el formulario Windows Forms.


Crear y configurar el conjunto de datos con respecto al cual se enlazará el formulario. Esto incluye crear una consulta
que llene el conjunto de datos a partir de la base de datos.
Agregar el control DataGrid al formulario y enlazarlo a los datos.
Agregar código para llenar el conjunto de datos.
Agregar código que envíe cambios del conjunto de datos de vuelta a la base de datos.

Cuando haya finalizado el tutorial, tendrá un formulario que se parecerá al siguiente.

Crear el proyecto y el formulario


El primer paso es crear un formulario Windows Forms.

Para crear el proyecto y el formulario

1. Si ya tiene una solución abierta, seleccione Cerrar solución en el menú Archivo.

https://msdn.microsoft.com/es­es/library/aa984466(v=vs.71).aspx 1/7
25/1/2017 Tutorial: acceso a datos sencillo en un formulario Windows Forms

Nota   En proyectos de producción, con mucha frecuencia tendrá varios proyectos en la misma
solución. No obstante, en este tutorial, cerrará cualquier solución abierta y creará una nueva junto con
el proyecto, por lo que no existirá ninguna interferencia entre lo que hará aquí y los formularios,
conjuntos de datos, etc. existentes.

2. En el menú Archivo, elija Nuevo y, a continuación, haga clic en Proyecto.


3. En el panel Tipos de proyecto, elija Proyectos de Visual Basic, Proyectos de Visual C# o Proyectos de Visual C++.
4. En el panel Plantillas, elija Aplicación para Windows para proyectos de Visual Basic o Visual C#, o elija Aplicación
de Windows Forms ﴾.NET﴿ para proyectos de Visual C++.
5. Asigne un nombre al proyecto que sea único y cumpla las convenciones de nomenclatura utilizadas. Por ejemplo,
podría denominar este proyecto como Walkthrough_Simple1.
6. Cuando haya asignado un nombre y especificado una nueva solución, haga clic en Aceptar.
Visual Studio crea un proyecto nuevo y muestra un formulario nuevo en el Diseñador de Windows Forms.

Crear y configurar un conjunto de datos


Como sucede con la mayoría de los escenarios de acceso a datos en las aplicaciones Windows Forms, trabajará con un
conjunto de datos. Un conjunto de datos es un contenedor, una caché, que contiene los registros con los que le interesa
trabajar.

Nota   Usar un conjunto de datos es sólo una de las opciones para obtener acceso a datos, y no es la elección
ideal en algunos escenarios. No obstante, los conjuntos de datos son normalmente la elección correcta en las
aplicaciones Windows Forms, por lo que usará uno de ellos en este tutorial. Para obtener más información, vea
Recomendaciones sobre la estrategia de acceso a datos.

En este tutorial, agregará un conjunto de datos al formulario. Sin embargo, ya que el conjunto de datos aún no existe, no lo
agregará manualmente al formulario. En su lugar, seguirá los pasos siguientes:

Crear un adaptador de datos con un asistente. El adaptador contiene instrucciones SQL que se utilizan para leer y
escribir información en la base de datos. El asistente le ayuda a definir las instrucciones SQL que necesita. Si es
preciso, el asistente también crea una conexión a la base de datos.
Generar el esquema del conjunto de datos. En este proceso, hará que Visual Studio cree una nueva clase de conjunto
de datos con tipo basándose en las tablas y columnas a las que está obteniendo acceso. Cuando genera la clase
conjunto de datos, también agrega una instancia de ella al formulario.

Es importante que siga todos los procedimientos de esta sección. En caso contrario, el formulario no tendrá el conjunto de
datos que se va a utilizar en las subsiguientes partes del tutorial.

Para obtener más información sobre adaptadores, vea Introducción a los adaptadores de datos. Para obtener más
información acerca de los conjuntos de datos, vea Introducción a conjuntos de datos.

Configurar una conexión de datos y un adaptador de datos


Para empezar, cree un adaptador de datos que contenga la instrucción SQL que se utilizará para llenar el conjunto de datos
más adelante. Como parte de este proceso, defina una conexión para obtener acceso a la base de datos. Configure el
adaptador de datos con el asistente, lo que facilita la creación de las instrucciones SQL necesarias para obtener acceso a los
datos.

Nota   Cuando el asistente haya finalizado, debe continuar en la sección siguiente para generar un conjunto de
datos y completar la parte de acceso a datos del formulario.

Nota de seguridad   El almacenamiento de los detalles de la cadena de conexión ﴾como el nombre de


servidor, el nombre de usuario y la contraseña﴿ puede afectar a la seguridad de la aplicación. El uso de la
Seguridad integrada de Windows es un modo más seguro de controlar el acceso a una base de datos. Para
obtener más información, vea Seguridad de bases de datos.

Para crear la conexión de datos y el adaptador de datos

https://msdn.microsoft.com/es­es/library/aa984466(v=vs.71).aspx 2/7
25/1/2017 Tutorial: acceso a datos sencillo en un formulario Windows Forms

1. Desde la ficha Datos del Cuadro de herramientas, arrastre un objeto OleDbDataAdapter al formulario.

Nota   También es posible utilizar SqlDataAdapter, que está optimizado para trabajar con SQL Server
7.0 o posterior. En este tutorial, se utiliza el comando OleDbDataAdapter porque es más genérico y
proporciona acceso mediante ADO.NET a cualquier origen de datos compatible con OLE DB.

Se inicia el Asistente para la configuración del adaptador de datos, que ayuda a crear la conexión y el adaptador.

2. En el asistente, haga lo siguiente:


a. En el segundo panel, cree o elija una conexión que apunte a la base de datos Pubs de SQL Server.
b. En el tercer panel, especifique que desea usar una instrucción SQL para obtener acceso a la base de datos.
c. En el cuarto panel, cree la siguiente instrucción SQL:

SELECT au_id, au_lname, au_fname, city, state, phone, contract 
FROM authors 

Para obtener ayuda para generar la instrucción SQL, haga clic en Generador de consultas para iniciar el
Generador de consultas.

Nota   En este tutorial llenará el conjunto de datos con todas las filas de la tabla Authors. En
aplicaciones de producción, normalmente se optimiza el acceso a datos mediante la creación de
una consulta que sólo devuelve las columnas y filas que se necesitan. Para obtener un ejemplo,
vea Tutorial: Mostrar datos en un formulario Windows Forms mediante una consulta
parametrizada.

3. Haga clic en Finalizar para completar el asistente.


Cuando el asistente haya finalizado, tendrá una conexión ﴾OleDbConnection1 en Visual Basic u oleDbConnection1
en Visual C# o Visual C++﴿ que contiene información sobre cómo obtener acceso a la base de datos. También tendrá
un adaptador de datos ﴾OleDbDataAdapter1 en Visual Basic u oleDbDataAdapter1 en Visual C# o Visual C++﴿ que
contiene una consulta que define la tabla y las columnas de la base de datos a la que desea tener acceso.

Cuando el asistente haya finalizado, genere el conjunto de datos basándose en la consulta SQL que ha creado durante este
procedimiento. Para obtener más información, vea la siguiente sección.

Crear el conjunto de datos


Después de haber establecido los métodos para conectarse a la base de datos y de especificar la información que desea ﴾a
través del comando SQL del adaptador de datos﴿, puede hacer que Visual Studio cree un conjunto de datos. Visual Studio
puede generar el conjunto de datos automáticamente basándose en la consulta que ha especificado para el adaptador de
datos. El conjunto de datos es una instancia de la clase DataSet basada en un esquema XML correspondiente ﴾archivo .xsd﴿
que describe los elementos de la clase ﴾tabla, columnas y restricciones﴿. Para obtener más información acerca de la relación
entre los conjuntos de datos y los esquemas, vea Introducción al acceso a datos con ADO.NET.

Para generar un conjunto de datos

1. Desde el menú Datos, elija Generar conjunto de datos.

Sugerencia   Si no ve el menú Datos, haga clic en el formulario; el formulario debe tener el foco para
que aparezca el menú.

Se mostrará el cuadro de diálogo Generar conjunto de datos.

2. Seleccione la opción Nuevo y el nombre del conjunto de datos dsAuthors.


En la lista situada bajo Elegir las tablas que desea agregar al conjunto de datos, la tabla Authors debería aparecer
seleccionada.

3. Asegúrese de que la casilla Agregar este conjunto de datos al diseñador está activada y haga clic en Aceptar.

https://msdn.microsoft.com/es­es/library/aa984466(v=vs.71).aspx 3/7
25/1/2017 Tutorial: acceso a datos sencillo en un formulario Windows Forms

Visual Studio genera una clase de conjunto de datos con tipo ﴾dsAuthors﴿ y un esquema que define el conjunto de
datos. Verá el nuevo esquema ﴾dsAuthors.xsd﴿ en el Explorador de soluciones.

Sugerencia   En el Explorador de soluciones, haga clic en Mostrar todos los archivos para ver que el
archivo .vb o .cs dependiente del esquema de archivos, que contiene el código que define la nueva
clase de conjunto de datos.

Por último, Visual Studio agrega una instancia de la nueva clase de conjunto de datos ﴾DsAuthors1 o dsAuthors1﴿ al
formulario.

Llegados a este punto, tiene configurado todo lo necesario para obtener información de la base de datos y almacenarla en
un conjunto de datos. Ya puede crear un formulario que muestre los datos.

Agregar un control DataGrid para mostrar los datos


En este tutorial, agregará un único control, un control DataGrid, que puede mostrar todos los registros del conjunto de
datos simultáneamente. Una alternativa sería utilizar controles individuales como cuadros de texto para mostrar un registro
cada vez. Esa estrategia requiere que agregue opciones de desplazamiento al formulario. En consecuencia, por sencillez,
utilizará una cuadrícula de datos.

Nota   Para obtener un ejemplo de cómo utilizar cuadros de texto individuales para mostrar registros de un
conjunto de datos, vea Tutorial: mostrar datos en un formulario Windows Forms mediante una consulta
parametrizada.

La cuadrícula de datos debe enlazarse al conjunto de datos para mostrar los datos.

Para agregar un control DataGrid al formulario

1. Si aún no lo ha hecho, cambie al diseñador de formularios haciendo clic en la ficha, en la parte superior de la ventana
actual.
2. Desde la ficha Windows Forms del Cuadro de herramientas, arrastre un control DataGrid al formulario.
3. Presione F4 para mostrar la ventana Propiedades.
4. En la propiedad DataSource, seleccione DsAuthors1 ﴾o dsAuthors1﴿ como origen de datos. No elija
DsAuthors1.Authors ﴾o dsAuthors1.Authors﴿.
5. En la propiedad DataMember, seleccione authors.
La configuración de estas dos propiedades enlaza la tabla de datos Authors del conjunto de datos DsAuthors1 a la
cuadrícula.

6. Cambie el tamaño de la cuadrícula para que se puedan ver todas las columnas. Cambie el alto con lo que podrá ver
varios registros de autores.

Llenar el control DataGrid


Aunque la cuadrícula de datos está enlazada con el conjunto de datos que creó, éste no se rellena automáticamente. Debe
rellenarlo usted mismo llamando a un método de adaptador de datos. Para obtener más información sobre cómo rellenar los
conjuntos de datos, vea Introducción a conjuntos de datos.

Para llenar el control DataGrid

1. Desde la ficha Windows Forms del Cuadro de herramientas, arrastre un control Button al formulario.
2. Llame al botón btnLoad y cambie el título estableciendo la propiedad Text en Cargar.
3. Haga doble clic en el botón para crear un método de control de eventos para su evento Click.
4. En el método, borre el conjunto de datos que ha creado y, a continuación, llame al método Fill del adaptador de
datos, pasándole el conjunto de datos que desea llenar.
En el ejemplo siguiente se muestra la apariencia del método completo:

https://msdn.microsoft.com/es­es/library/aa984466(v=vs.71).aspx 4/7
25/1/2017 Tutorial: acceso a datos sencillo en un formulario Windows Forms

' Visual Basic 
Private Sub btnLoad_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 
Handles btnLoad.Click 
   DsAuthors1.Clear() 
   OleDbDataAdapter1.Fill(DsAuthors1) 
End Sub 

// C# 
private void btnLoad_Click(object sender, System.EventArgs e) 

   dsAuthors1.Clear(); 
   oleDbDataAdapter1.Fill(dsAuthors1); 

// C++ 
private: 
   System::Void btnLoad_Click(System::Object *  sender, 
      System::EventArgs *  e) 
      { 
         dsAuthors1::Clear(); 
         oleDbDataAdapter1::Fill(dsAuthors1); 
      } 

Actualizar la base de datos


Cuando los usuarios hacen un cambio en la cuadrícula, el control guarda automáticamente el registro actualizado en el
conjunto de datos. En formularios Windows Forms, la arquitectura de enlace de datos escribe los valores de los controles
enlazados a datos en las filas de datos a los que están enlazados.

Nota   En páginas de formularios Web Forms, el enlace de datos funciona de diferente manera. Si desea un
ejemplo paso a paso del enlace de datos en las páginas de los formularios Web Forms, vea Tutorial: Mostrar
datos en una página de formularios Web Forms y Tutorial: Actualizar datos mediante una consulta de
actualización de bases de datos en los formularios Web Forms.

No obstante, cuando se trabaja con un conjunto de datos, las actualizaciones requieren dos fases. Después de que los datos
están en el conjunto de datos, aún tiene que enviarlos del conjunto de datos a la base de datos. El adaptador de datos
puede hacerlo con su método Update, que examina cada registro de la tabla de datos especificada del conjunto de datos y,
si se ha cambiado algún registro, envía el comando Update, Insert o Delete apropiado a la base de datos. Para obtener más
información, vea Introducción a las actualizaciones de conjuntos de datos.

En este tutorial, agregará un botón al formulario, que los usuarios pueden presionar cuando deseen enviar actualizaciones a
la base de datos.

Para actualizar la base de datos

1. Desde la ficha Windows Forms del Cuadro de herramientas, arrastre un control Button al formulario.
2. Llame al botón btnUpdate y cambie el título estableciendo la propiedad Text en Guardar cambios en la base de
datos.
3. Haga doble clic en el botón para crear un método de control de eventos para su evento Click.
4. En el método, llame al método Update del adaptador de datos, pasándole el conjunto de datos que contiene las
actualizaciones que desea enviar a la base de datos. Utilice el objeto MessageBox para mostrar un texto de
confirmación.
En el ejemplo siguiente se muestra la apariencia del método completo:

' Visual Basic 
Private Sub btnUpdate_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) 

https://msdn.microsoft.com/es­es/library/aa984466(v=vs.71).aspx 5/7
25/1/2017 Tutorial: acceso a datos sencillo en un formulario Windows Forms

Handles btnUpdate.Click 
   OleDbDataAdapter1.Update(DsAuthors1) 
   MessageBox.Show("Database updated!") 
End Sub 

// C# 
private void btnUpdate_Click(object sender, System.EventArgs e) 

   oleDbDataAdapter1.Update(dsAuthors1); 
   MessageBox.Show("Database updated!"); 

// C++ 
private: 
   System::Void btnUpdate_Click(System::Object *  sender, 
      System::EventArgs *  e) 
      { 
         oleDbDataAdapter1::Update(dsAuthors1); 
         MessageBox::Show("Database updated!"); 
      } 

Pruebas
Ahora puede comprobar el formulario para asegurarse de que muestra los datos de autores en la cuadrícula y que los
usuarios pueden realizar actualizaciones.

Para comprobar el formulario

1. Presione F5 para ejecutar el formulario.

Nota   No es raro obtener una excepción de tipo System.Data.SqlClient.SqlException en este


momento, probablemente debido al modo en que se guardaron las credenciales de inicio de sesión de
la base de datos. Para obtener información sobre cómo solucionar este problema, vea No se puede
obtener acceso a una base de datos en tiempo de ejecución a la que sí se puede obtener acceso en
tiempo de diseño.

2. Cuando se muestre el formulario, haga clic en el botón Cargar.


En la cuadrícula se muestra una lista de autores.

3. Haga un cambio en un registro de la cuadrícula.


Cuando se desplaza a otro registro de la cuadrícula, se conserva el cambio. Recuerde el cambio.

4. Haga clic en el botón Cargar.


Esto vuelve a cargar el conjunto de datos desde la base de datos y actualiza la cuadrícula. Tenga en cuenta que el
cambio que ha realizado en el Paso 3 no se ha conservado, porque no guardó los cambios del conjunto de datos en la
base de datos.

5. Haga de nuevo un cambio en un registro de la cuadrícula.


6. Haga clic en el botón Guardar cambios en la base de datos.
Verá que se muestra un cuadro de mensaje, pero que no hay ningún cambio en la cuadrícula.

7. Haga clic en el botón Cargar otra vez para volver a cargar los datos de la base de datos.
Ahora, se conserva el cambio que ha realizado en el Paso 5, porque los datos se han guardado en la base de datos.

Pasos siguientes
En este tutorial se han mostrado los pasos básicos relacionados con la presentación de datos en un formulario. Algunas
mejoras que podría realizar en el formulario en este tutorial incluyen:

https://msdn.microsoft.com/es­es/library/aa984466(v=vs.71).aspx 6/7
25/1/2017 Tutorial: acceso a datos sencillo en un formulario Windows Forms

Dar formato a la cuadrícula cambiando su color, fuente, etc.


Hacer que la cuadrícula muestre datos sin que el usuario la cargue explícitamente. Para ello, agregue un método Fill
al método New del formulario ﴾en Visual Basic﴿ o constructor ﴾en C#﴿ y quite el botón Cargar.
Mostrar sólo la información seleccionada en la cuadrícula. En muchos casos, basará la presentación en información
que el usuario proporciona en tiempo de ejecución ﴾por ejemplo, podría mostrar sólo los autores de una ciudad
determinada﴿. Para ello, cree una consulta parametrizada. Para obtener más información, vea Tutorial: mostrar datos
en un formulario Windows Forms mediante una consulta parametrizada.
Separar el acceso a datos de la interfaz de usuario. En este tutorial, ha creado un formulario que tiene acceso a datos
de una forma más o menos directa ﴾a través del conjunto de datos﴿. Un diseño más flexible y fácil de mantener es
crear un componente de acceso a datos que controle el acceso a datos. El formulario ﴾es decir, la interfaz de usuario﴿
podría interactuar con el componente según fuera necesario. Varios formularios ﴾y otros componentes﴿ podrían
utilizar el mismo componente, lo que elimina la sobrecarga y la redundancia de nuevos diseños de acceso a datos
para cada formulario que se cree. Para obtener más información sobre la creación de accesos a datos basados en los
componentes, vea Tutorial: crear una aplicación distribuida.

Vea también
Tutorial: mostrar datos en un formulario Windows Forms mediante una consulta parametrizada

© 2017 Microsoft

https://msdn.microsoft.com/es­es/library/aa984466(v=vs.71).aspx 7/7

También podría gustarte