Primeros Pasos: Enlazar un DataGridView y TextBox en C#

nov 02, 2010 23 comentarios por

En este tutorial vamos a aprender a enlazar un DataGridView con los TextBox, las herramientas que vamos a utilizar para este tutorial son las siguientes:

Microsoft Visual Studio Professional o Express, Puedes bajar la versión Express Aquí.

Microsoft SQL Server Express, Descargarlo desde Aquí.

En este caso utilizaremos la versión 2010, pero este ejemplo también te puede servir si tienes la versión 2008  o 2005 y el lenguaje será C#.

¿Que vamos aprender en este Tutorial?

  1. Crear una base de datos en SQL Server.
  2. Crear una conexión a la base de datos.
  3. Enlazar un TextBox con un DataGridView.

Empecemos con el Tutorial:

Paso 1: Creamos un nuevo proyecto del tipo Windows Forms Application y lo nombramos “DataGridView”

Nuevo Proyecto

Paso 2: Creamos un nuevo Item o elemento.

Agregar Item

Paso 3: Al agregar un nuevo item nos mostrara una pantalla como la que veremos a continuación y buscaremos Service-base-Database y damos click en Add, con esto estaremos creando la base de datos.

Agregar base de datos

Paso 4: Seleccionaras la opción de DataSet y oprimes siguiente, te aparecerá un mensaje de que haz creado un nuevo dataset y das finalizar.

Dataset

Paso 5: Vamos al explorador de soluciones que se encuentra de lado derecho y encontraremos que se ha agregado una nueva base de datos  la cual lleva el nombre de “Database1.mdf” , le damos doble click a la base de datos y nos mostrara de lado izquierdo el Server Explorer donde vamos a ver varias carpetas, vamos a dar un click derecho sobre la carpeta de Tables o Tablas y seleccionamos la opción de agregar nueva tabla.

Agregar Nueva Tabla

Paso 6: Vamos agregar los siguientes campos a nuestra tabla:

  • Id (int)
  • Nombre (varchar(50))
  • Telefono (int)
  • Direccion (varchar(50))
  • Email (varchar(50))

Una vez creados los campos, guardamos nuestra tabla con el nombre de Empleados.

Tabla Empleados

Paso 7: Ahora vamos a agregar algunos registros, en el Server Explorer se agrego la tabla empleados, damos click derecho sobre la tabla y seleccionamos la opción de mostrar datos de la tabla o Show Table Data, nos mostrara la tabla vacía proseguimos con agregar algunos registros.

Datos de Tabla

Registros de la Tabla

Paso 8: Agregamos a nuestro formulario los siguientes controles:

  • 1 DataGridView
  • 6 Labels
  • 5 TextBox

Nuestro Form deberá quedar similar a la siguiente imagen.

Diseño del Formulario

Paso 9: !Vayamos al código!

Lo primero que vamos hacer es importar el namespace: using System.Data.SqlClient.

En la sección de form_load agregaremos las siguientes lineas de código.

  • BindingSource bindingsource1 = new BindingSource();
  • SqlDataAdapter dataAdapter = new SqlDataAdapter();

La primer linea nos servira como enlace de los datos de la tabla con el datagridview
La segunda linea nos permitira poder unir nuestra consulta y la conexion.

Hasta Aquí debemos tener algo similar a esto:

Código Primera Parte

Posteriormente vamos a copiar la ruta o path de nuestra base de datos, vamos a nuestro explorador de soluciones y seleccionamos nuestra base de datos “Database1.mdf” para ver las propiedades de la base de datos, una vez ya en las propiedades buscaremos la propiedad “Full Path” o “Ruta de Acceso”, seleccionamos toda la ruta y copiamos.

Ruta de Base de Datos

Volvemos al código y comenzamos a crear la conexión.

  • String datasource=@”Data Source=.\SQLEXPRESS;AttachDbFilename=Aquí va la ruta que copiamos anteriormente;Integrated Security=True;User Instance=True”;  //Aquí estamos definiendo la ruta de nuestra base de datos
  • dataAdapter = new SqlDataAdapter(“Select * from Empleados”, datasource); //Enlazamos la consulta con nuestra base de datos
  • SqlCommandBuilder comando = new SqlCommandBuilder(dataAdapter); //Generamos un comando para asociarlo con nuestro dataAdapter
  • DataTable tabla = new DataTable();// Creamos un objeto DataTable
  • dataAdapter.Fill(tabla);//Llenamos nuestro dataAdapter con los campos de nuestra tabla
  • bindingsource1.DataSource = tabla;//Asignamos la fuente de datos de nuestro bindingsource
  • dataGridView1.DataSource = bindingsource1;//Le asignamos el datasource a nuestro DataGridView
  • textBox1.DataBindings.Add(“Text”, bindingsource1, “Id”);//Enlazamos nuestros campos de texto con el bindingsource y sus respectivos campos.
  • textBox2.DataBindings.Add(“Text”, bindingsource1, “Nombre”);
  • textBox3.DataBindings.Add(“Text”, bindingsource1, “Telefono”);
  • textBox4.DataBindings.Add(“Text”, bindingsource1, “Direccion”);
  • textBox5.DataBindings.Add(“Text”, bindingsource1, “Email”);

Al terminar tendremos un código como se muestra en la siguiente imagen.

Código Terminado

Ahora solo ejecutamos nuestro proyecto y listo, tenemos nuestro DataGridView enlazado con los Textbox, como resultado tendremos que al seleccionar un registro en el DataGridView los campos de texto tendrán el valor del registro seleccionado.

Tutorial Terminado

Espero y les pueda servir este tutorial :)

Diseño y Desarrollo, Tutoriales


votar




Acerca del autor

Aprendiz de nuevas tecnologías y Desarrollador Web, me gusta poder transmitir lo que voy aprendiendo en este mundo de información, en Twitter @soy_ASantiago.

23 comentarios to “Primeros Pasos: Enlazar un DataGridView y TextBox en C#”

  1. soy_ASantiago says:

    Para los que quieran bajar el proyecto aquí les dejo el link.
    http://dl.dropbox.com/u/7561836/DataGridView1.rar

  2. Miguel says:

    Hola, no tengo amplio conocimiento relacionado con lo que aquí expones. Pero me interesa mucho y a cierto grado lo entiendo. Lo que me queda duda es saber en donde se puede usar esto. Localmente en una pc o red o en un sitio web?

    Gracias.

    • soy_ASantiago says:

      Hola Miguel, en si este tutorial esta dirigido a todos aquellos que empezamos con nuestros pininos en visual.net, y este ejemplo puedes ejecutarlo localmente en tu PC ya que es un proyecto del tipo Windows Forms Application, y ya teniendo un poco mas de conocimientos podrías implementarlo en una red local.

      Gracias por tu comentario. :)

  3. KrisOlvera says:

    muy interesante tu tutorial, y muy funcional para los q estamos empezando en esto de .net, me gustaria q pudieras poner el codigo en vb en vez de c#. De antemano se agradece q compartas el conocimiento.

    EL CONOCIMEINTO NO VALE SINO LO COMPARTES..=)

  4. JHAIR says:

    HOLA!!! MUY BUEN APORTE PERO DE CASUALIDAD NO TENDRAS EL CODIGO EN VB 2008 ME SUPER URGE

  5. Oscar Cerna says:

    Gracias.

    Me ayudo mucho tu tuto pero me encantaria saber como egredo datos al DataGridView desde los textBox si podrias contestarme a mi correo gracias te lo estare eternamente agradecido

    atentamente:
    Oscar Cerna

  6. burla says:

    lo mismo pero al revez jajaja

  7. Dayana says:

    Hola amigo.. muy interesante tu codigo… justo lo q buscaba, ahora quisiera saber como puedo hacer para aumentar 2 botones uno q diga siguiente y otro anterior… para primero elegir uno, se me cargan en los campos del text box y luego seguir avanzando los items del datagridview, no entiendo como realizar el codigo de este… ayudame porfa

    • soy_ASantiago says:

      Hola mira para agregar dos botones de siguiente y anterior en el botón de siguiente deberás poner
      bindingsource1.MoveNext();
      dataGridView1.DataSource= bindingsource1;
      PARA EL BOTÓN ANTERIOR
      bindingsource1.MovePrevious();
      dataGridView1.DataSource = bindingsource1;

      Espero te sirva.

      Saludos.

  8. Dayana says:

    mmm… q raro amigo.. en visual studio 2005 en c# me da error justo ese… bindingsource1.MovePrevious();

  9. Dayana says:

    ya correcto!!… eso ya lo tengo… dentro de eso quiero agregar 2 botones : uno q retroceda y oro q avance… para pasar los datos de esos textbox.. claro q son datos q estan en el datagrid…

  10. Luigui says:

    hola que tal me gustaria saber si sabes ahora com guardo los datos que he modificado en este grid, para que los cambiios queden permanentes en la base de datos :) gracias de antemano :) y muy bueno tu tuto ;)

  11. edgar prospero says:

    hola ojala me puedas ayudar ya me aparece la informacion del datagrid en los textbox pero quisiera saber cmo hacerle para cuando modifico informacion en los textbox se me actualice tambien en la base de datos mysql

  12. javier says:

    hola amigo muy bueno en serio que se, pero sera que me puedes colaborar con este problemita. resulta que tengo mi bd en sql server management studio por a parte y necesito la conexión o la forma de hacerla que no sea automática ..
    String datasource=@”Data Source=.SQLEXPRESS;AttachDbFilename=Aquí va la ruta que copiamos anteriormente;Integrated Security=True;User Instance=True”;

    • joe07 says:

      Private WithEvents bs As New BindingSource
      Private Const cs As String = “Data Source=tuservidor;Initial Catalog=MTR;Integrated Security=True”

      Try
      ‘Declarar la conexion y abrir
      Using cn As SqlConnection = New SqlConnection(cs)
      cn.Open()

      ‘crear un DataAdapter y pasarle el comando para traer los registros
      Dim sql As String = “SELECT * FROM tutabla”

      Dim da As New SqlDataAdapter(sql, cn)
      ‘Datatable
      Dim dt As New DataTable
      ‘Nuevo ds
      DataSet = New DataSet
      ‘ llenar el Datatable
      da.Fill(dt)

      ‘Enlazar el DataTable al BindingSource
      bs.DataSource = dt

      End Using
      Catch
      End Try

      Te dejo un fragmento de mi codigo para que revises como lo estructure con cadena de conxion, espero te sirva..

      Saludos

  13. emmanuel says:

    hola quisiera saber como hacer para guardar los datos de una datagridview en una tabla sql,
    Gracias!

  14. alex rod says:

    Hola amigo, me sirvio tu ejemplo muy bueno, pero necesito un boton que me permita modificar un registro y tambien eliminarlo, agradezco me puedas colaborar

  15. Lalys says:

    Hola, Muy buen aporte.
    Me encuentro en mis camino por aprender a programar y este ejemplo me sirvio inmensamente :)
    Gracias!

Deja tu comentario


Deja tu comentario vía FaceBook