lunes, 6 de enero de 2014

DATAGRIDVIEW

  1. Crear una  DBEJEMPLO
  2. Crear una una tb DEPARTAMENTOS  
  • id_departamento 
  • descripcion

  1. Crear un nuevo proyecto en visual studio .net llamado LLENARDATAGRIDVIEW
  2. 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 StringAs 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