AQUI LES DEJO ESTO QUE ENCONTRE EN LA RED LO POSTEO PÓRQUE ES DE BASTANTE IMPORTANCIA PARA LOS INTERESADOS EN ESTO LENGUAJE AQUI SE LOS DEJOS ESTEN AL PENDIENTE SEGUIRE COMPARTIENDO MATERIAL ES DEMASIADO LO QUE TENGO Y VAMOS A COMPARTIRLO TODO POR QUE EL CONOCIMIENTO ES GRATUITO.
Se trata de poder agregar registros (filas) o eliminarlos del mismo datgridview; Hacer un filtro de búsqueda en él, cargar información desde la base de datos, etc.
Primero creamos un proyecto de Visual studio (en este tutorial he utilizado Visual Basic .NET y C#) y empezamos hacer la interfaz gráfica, como resultado nos debe quedar así:
Para este ejemplo vamos a tener que importar la clase System.Data,OleDb (porque vamos a trabajar con access). La cadena de conexión seria esta:
Dim Con As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0; Data Source=" + Application.StartupPath +"\\Cliente.accdb;")
Para cargar los registros desde la base de datos hasta el datagridview tendriamos que usar esta funcion declada como Datatable:
Function CargarRegistrosBD(ByVal dgv As DataGridView) As DataTable
Con.Open()
Dim dt As New DataTable()
Dim cmd As New OleDbCommand("SELECT [NombreCliente], [Direccion], [Telefono] FROM Cliente", Con)
Dim da = New OleDbDataAdapter(cmd)
da.Fill(dt)
Con.Close()
Return dt
End Function
Con.Open()
Dim dt As New DataTable()
Dim cmd As New OleDbCommand("SELECT [NombreCliente], [Direccion], [Telefono] FROM Cliente", Con)
Dim da = New OleDbDataAdapter(cmd)
da.Fill(dt)
Con.Close()
Return dt
End Function
Para guardar los registros desde el datagridview hasta la base de datos sería así:
Function GuardarRegistrosBD(ByVal dgv As DataGridView) As Boolean
Dim numreg As Integer
Dim numreg As Integer
Con.Open()
For i = 0 To dgv.Rows.Count - 1
Using cmd As New OleDbCommand("INSERT INTO Cliente([NombreCliente],[Direccion], [Telefono]) VALUES(@nom, @dir, @tel)", Con)
cmd.Parameters.Clear()
cmd.Parameters.Add("@nom", OleDbType.VarChar).Value = dgv.Rows(i).Cells(0).Value
cmd.Parameters.Add("@dir", OleDbType.VarChar).Value = dgv.Rows(i).Cells(1).Value
cmd.Parameters.Add("@tel", OleDbType.VarChar).Value = dgv.Rows(i).Cells(2).Value
numreg += cmd.ExecuteNonQuery()
End Using
Next
If numreg > 0 Then
GuardarRegistrosBD = True
Else
GuardarRegistrosBD = False
End If
Con.Close()
End Function
Using cmd As New OleDbCommand("INSERT INTO Cliente([NombreCliente],[Direccion], [Telefono]) VALUES(@nom, @dir, @tel)", Con)
cmd.Parameters.Clear()
cmd.Parameters.Add("@nom", OleDbType.VarChar).Value = dgv.Rows(i).Cells(0).Value
cmd.Parameters.Add("@dir", OleDbType.VarChar).Value = dgv.Rows(i).Cells(1).Value
cmd.Parameters.Add("@tel", OleDbType.VarChar).Value = dgv.Rows(i).Cells(2).Value
numreg += cmd.ExecuteNonQuery()
End Using
Next
If numreg > 0 Then
GuardarRegistrosBD = True
Else
GuardarRegistrosBD = False
End If
Con.Close()
End Function
Para buscar o hacer un filtro en el datgridview al momento de que escribamos algo en el textbox de busqueda utilizaríamos esta función: Filtro definida como datatable:
Function Filtro(ByVal busq As String) As DataTable
con.Open()
Dim dt As New DataTable()
Dim cmd As New OleDbCommand("SELECT [NombreCliente], [Direccion], [Telefono] FROM Cliente WHERE NombreCliente LIKE '%" & busq & "%'", Con)
Dim da = New OleDbDataAdapter(cmd)
da.Fill(dt)
con.Close()
Return dt
End Function
con.Open()
Dim dt As New DataTable()
Dim cmd As New OleDbCommand("SELECT [NombreCliente], [Direccion], [Telefono] FROM Cliente WHERE NombreCliente LIKE '%" & busq & "%'", Con)
Dim da = New OleDbDataAdapter(cmd)
da.Fill(dt)
con.Close()
Return dt
End Function
Listo, ahora en el evento Click del boton de cargar registros (BtnCargarRegistrosBaseDatos) colocamos el codigo de la funcion para cargar dichos registros; y en el evento Click del boton guardar registros (BtnGuardarABaseDatos) colocamos un condicional que primero preguntaría si el datgridview no esta vacío y luego preguntaría que respuesta trajo la funcion GuardarRegistrosBD: falso o verdadero... Al final sería asi:
If DgvOperaciones.Rows.Count > 0 Then
If GuardarRegistrosBD(DgvOperaciones) Then
MessageBox.Show("Registros guardados")
DgvOperaciones.Rows.Clear()
Else
MessageBox.Show("No se pudieron guardar los registros")
End If
End If
If GuardarRegistrosBD(DgvOperaciones) Then
MessageBox.Show("Registros guardados")
DgvOperaciones.Rows.Clear()
Else
MessageBox.Show("No se pudieron guardar los registros")
End If
End If
Ahora para pasar los datos digitados en los textbox's hasta el datgridview , hacemos esto (preguntamos si los textbox's no estan vacíos y procedemos a agregar los datos en el orden de las columnas):
If TxtDireccion.Text <> "" And TxtNombre.Text <> "" And TxtTelefono.Text <> "" Then
DgvOperaciones.Rows.Add(TxtNombre.Text, TxtDireccion.Text, TxtTelefono.Text)
Else
MessageBox.Show("Completa los campos")
End If
DgvOperaciones.Rows.Add(TxtNombre.Text, TxtDireccion.Text, TxtTelefono.Text)
Else
MessageBox.Show("Completa los campos")
End If
Y por último para eliminar la fila de un registro que no queramos guardar en la base de datos, hacemos esto (preguntamos si el datagrid no esta vacío y procedemos a eliminar la fila seleccionada):
If DgvOperaciones.Rows.Count > 0 Then
DgvOperaciones.Rows.RemoveAt(DgvOperaciones.CurrentRow.Index)
End If
DgvOperaciones.Rows.RemoveAt(DgvOperaciones.CurrentRow.Index)
End If
Bueno amigos, espero les siva este pequeño ejemplo ya que he visto muchos que no tienen mucha claridad en cuanto datgridviews se refieren. No te olvides de compartir este tutorial, de comentar si te apetece y de seguirme en facebook, youtube, twitter y obviamente aquí en mi página web.
Adjunto el proyecto de Visual Studio 2010 en Visual Basic .NET y C#.
Gracias amigo dime si sirvio este enlace que te envie para visual basic 2010 pdf Users
ResponderEliminarhttps://mega.co.nz/#!ntJgmZZL!T_rvAAK-EMZQ8WpZUd4jBDPCQ-RcKt-XB9vI5gdDGdY
si sirvio ya lo descargare en breve lo posteo
Eliminaramigo una pregunta donde esta el link de descarga agradesco tu respuesta
ResponderEliminar