- Crear una DBEJEMPLO
- Crear una una tb DEPARTAMENTOS
- id_departamento
- descripcion
- Crear un nuevo proyecto en visual studio .net llamado LLENARDATAGRIDVIEW
- Ir a herramientas y seleccionar una DATAGRIDVIEW y arrastrarlo al formulario FORM1 que se genera automáticamente.
Imports System.Data
Imports System.Data.SqlClient
Public Class datos
private ServerName As String = "." 'Nombre del servidor local, pueden escribir ".", si no les funciona escriban el nombre completo, por ejemplo: "EVELYN-PC\SQLEXPRESS"
private DBname As String = "DBEJEMPLO" ' Nombre de la base de datos
private sqlstringConexion As String = "Data Source=" + Servername + ";Initial Catalog=" + DBname + ";Integrated Security=True"
private Sqlconexion As New SqlClient.SqlConnection(sqlstringConexion) ' asigna la conexion de la base de datos con string de la conexion
private SqlCommand As SqlClient.SqlCommand
private Sqldapter As New SqlClient.SqlDataAdapter
private SqlDataAdapter As SqlDataAdapter
Private Function CargarDataset(ByVal SqlString As String, ByVal tabla As String) As DataSet
Try
Dim SQLdataset As New DataSet
Sqlconexion.Open()
Sqldapter = New SqlDataAdapter(SqlString, Sqlconexion)
Sqldapter.Fill(SQLdataset, tabla)
Return SQLdataset
Catch ex As Exception
Return Nothing
MessageBox.Show("No se pudo completar la operación, intente de verificar la conexión a la base de datos.", "Fallo conexión a la base de datos", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
Sqlconexion.Close()
End Try
End Function
Public Sub Cargargrid(ByVal formulario As String, ByRef dtg As DataGridView)
Try
Dim tabla As String = "departamentos"
Dim SqlString As String = "select a.id_departamento as Código, a.descripcion as Departamento from " + tabla + " a"
Dim ds As DataSet = CargarDataset(SqlString, tabla)
If ds Is Nothing Then
Exit Sub
End If
Select Case formulario
Case "Forma 1"
CargarForma1(ds, dtg, tabla)
Case "Forma 2"
CargarForma2(ds, dtg, tabla)
Case Else
Exit Sub
End Select
Catch ex As Exception
MessageBox.Show(Err.Description)
End Try
End Sub
Private Sub CargarForma1(ByVal ds As DataSet, ByRef dtg As DataGridView, ByVal tabla As String)
Try
Dim n As Integer ' variables para el for
Dim fila As DataGridViewRow ' representa una fila del datagridview
' ciclo para limpiar el datagrid de cualquier dato y evitar que se repitan
If dtg.Rows.Count > 0 Then
For n = dtg.Rows.Count - 2 To 0 Step -1
fila = dtg.Rows(n)
dtg.Rows.Remove(fila) ' Eliminamos la fila de la colección
Next
End If
dtg.DataSource = Nothing ' limpiar el datasourse
dtg.Refresh() ' actualizar
dtg.DataSource = ds ' asignar en la memoria la tabla
dtg.DataMember = tabla ' asignar la tabla escogida
Catch ex As Exception
MessageBox.Show(Err.Description)
End Try
End Sub
Private Sub CargarForma2(ByVal ds As DataSet, ByRef dtg As DataGridView, ByVal tabla As String)
Try
If dtg.Rows.Count > 0 Then
dtg.Rows.Clear() 'limpiar el datagridview
End If
Dim filas As Integer = ds.Tables(tabla).Rows.Count - 1 ' verificamos que existan datos
If filas < 0 Then
Exit Sub
End If
Dim Codigo As String
Dim descripcion As String
For i As Integer = 0 To filas ' recorrer las filas del dataset cargado
Codigo = ds.Tables(tabla).Rows(i)(0)
descripcion = ds.Tables(tabla).Rows(i)(1)
dtg.Rows.Add(Codigo, descripcion)
Next
Catch ex As Exception
MessageBox.Show(Err.Description, "Fallo conexión a la base de datos",MessageBoxButtons.OK, messageBoxIcon.Error)
End Try
End Sub
End Class
Imports System.Data.SqlClient
Public Class datos
private ServerName As String = "." 'Nombre del servidor local, pueden escribir ".", si no les funciona escriban el nombre completo, por ejemplo: "EVELYN-PC\SQLEXPRESS"
private DBname As String = "DBEJEMPLO" ' Nombre de la base de datos
private sqlstringConexion As String = "Data Source=" + Servername + ";Initial Catalog=" + DBname + ";Integrated Security=True"
private Sqlconexion As New SqlClient.SqlConnection(sqlstringConexion) ' asigna la conexion de la base de datos con string de la conexion
private SqlCommand As SqlClient.SqlCommand
private Sqldapter As New SqlClient.SqlDataAdapter
private SqlDataAdapter As SqlDataAdapter
Private Function CargarDataset(ByVal SqlString As String, ByVal tabla As String) As DataSet
Try
Dim SQLdataset As New DataSet
Sqlconexion.Open()
Sqldapter = New SqlDataAdapter(SqlString, Sqlconexion)
Sqldapter.Fill(SQLdataset, tabla)
Return SQLdataset
Catch ex As Exception
Return Nothing
MessageBox.Show("No se pudo completar la operación, intente de verificar la conexión a la base de datos.", "Fallo conexión a la base de datos", MessageBoxButtons.OK, MessageBoxIcon.Error)
Finally
Sqlconexion.Close()
End Try
End Function
Public Sub Cargargrid(ByVal formulario As String, ByRef dtg As DataGridView)
Try
Dim tabla As String = "departamentos"
Dim SqlString As String = "select a.id_departamento as Código, a.descripcion as Departamento from " + tabla + " a"
Dim ds As DataSet = CargarDataset(SqlString, tabla)
If ds Is Nothing Then
Exit Sub
End If
Select Case formulario
Case "Forma 1"
CargarForma1(ds, dtg, tabla)
Case "Forma 2"
CargarForma2(ds, dtg, tabla)
Case Else
Exit Sub
End Select
Catch ex As Exception
MessageBox.Show(Err.Description)
End Try
End Sub
Private Sub CargarForma1(ByVal ds As DataSet, ByRef dtg As DataGridView, ByVal tabla As String)
Try
Dim n As Integer ' variables para el for
Dim fila As DataGridViewRow ' representa una fila del datagridview
' ciclo para limpiar el datagrid de cualquier dato y evitar que se repitan
If dtg.Rows.Count > 0 Then
For n = dtg.Rows.Count - 2 To 0 Step -1
fila = dtg.Rows(n)
dtg.Rows.Remove(fila) ' Eliminamos la fila de la colección
Next
End If
dtg.DataSource = Nothing ' limpiar el datasourse
dtg.Refresh() ' actualizar
dtg.DataSource = ds ' asignar en la memoria la tabla
dtg.DataMember = tabla ' asignar la tabla escogida
Catch ex As Exception
MessageBox.Show(Err.Description)
End Try
End Sub
Private Sub CargarForma2(ByVal ds As DataSet, ByRef dtg As DataGridView, ByVal tabla As String)
Try
If dtg.Rows.Count > 0 Then
dtg.Rows.Clear() 'limpiar el datagridview
End If
Dim filas As Integer = ds.Tables(tabla).Rows.Count - 1 ' verificamos que existan datos
If filas < 0 Then
Exit Sub
End If
Dim Codigo As String
Dim descripcion As String
For i As Integer = 0 To filas ' recorrer las filas del dataset cargado
Codigo = ds.Tables(tabla).Rows(i)(0)
descripcion = ds.Tables(tabla).Rows(i)(1)
dtg.Rows.Add(Codigo, descripcion)
Next
Catch ex As Exception
MessageBox.Show(Err.Description, "Fallo conexión a la base de datos",MessageBoxButtons.OK, messageBoxIcon.Error)
End Try
End Sub
End Class
7. Agregamos un botón para cargar los datos y en el evento click del botón, colocamos el siguiente código.
Dim objetoDatos As New datos ' instanciar un objeto de la clase datos
objetoDatos.Cargargrid("Forma 2", DataGridView1)
No hay comentarios:
Publicar un comentario