Primeros Pasos: Enlazar un DataGridView y TextBox en C#
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?
- Crear una base de datos en SQL Server.
- Crear una conexión a la base de datos.
- 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”
Paso 2: Creamos un nuevo Item o elemento.
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.
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.
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.
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.
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.
Paso 8: Agregamos a nuestro formulario los siguientes controles:
- 1 DataGridView
- 6 Labels
- 5 TextBox
Nuestro Form deberá quedar similar a la siguiente imagen.
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:
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.
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.
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.
Espero y les pueda servir este tutorial
























Para los que quieran bajar el proyecto aquí les dejo el link.
http://dl.dropbox.com/u/7561836/DataGridView1.rar
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.
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.
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..=)
Hola KrisOlvera te agradezco tu comentario y claro deja armarlo y pondré el link aquí en los comentarios para descargar el código en vb.net.
.
Saludos.
Hola KrisOlvera aquí te dejo el link donde puedes descargar el ejemplo en VB.NET.
http://dl.dropbox.com/u/7561836/DatagridviewVB.rar
recuerda cambiar el path del datasource, por lo que veras es similar a lo que publique aquí espero te sirva.
Saludos
HOLA!!! MUY BUEN APORTE PERO DE CASUALIDAD NO TENDRAS EL CODIGO EN VB 2008 ME SUPER URGE
Aquí puedes bajar el código en VB.Net, este código funciona tanto en 2005, 2008 y 2010. http://dl.dropbox.com/u/7561836/DatagridviewVB.rar
Gracias por tu comentario Saludos.
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
lo mismo pero al revez jajaja
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
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.
mmm… q raro amigo.. en visual studio 2005 en c# me da error justo ese… bindingsource1.MovePrevious();
bueno ya consegui ejecurarlo, pero la cosa esq no queria q avance en si el datagrid, sino q los datos del datagrid aparecen en un textbox y eso quiero q avance de los datos del datagrid
Quieres que estén enlazados los textbox con el datagridview?
Si eso necesitas baja el ejemplo desde aquí
http://dl.dropbox.com/u/7561836/DataGridView1.rar
Saludos
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…
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
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
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”;
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
hola quisiera saber como hacer para guardar los datos de una datagridview en una tabla sql,
Gracias!
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
Hola, Muy buen aporte.
Me encuentro en mis camino por aprender a programar y este ejemplo me sirvio inmensamente
Gracias!