Llenar un DataGridView y obtener el valor de una celda

Un ejemplo de como llenar un DataGridView a partir de una consulta a SQL. Utilizaremos una base de datos ms Access.

  1. Imports System.Data
  2. Imports System.Data.OleDb
  3.  
  4. Public Class frmMain
  5.  
  6.     Public sConexion As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & sBaseDatos
  7.  
  8.     Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
  9.  
  10.         Dim cn As New OleDbConnection(sConexion)
  11.         Dim MiDataSet As New DataSet
  12.         Dim MiAdaptador As New OleDb.OleDbDataAdapter
  13.  
  14.         Try
  15.             cn.Open()
  16.            
  17.             ' Creamos la consulta
  18.  
  19.             Dim sql As String = "Select id_num, campo1, campo2," & _
  20.             " campo3, campo4" & _
  21.             " From tabla1 Where " & _
  22.             " campo1 like '" & Trim(Replace(Me.txtBusqueda.Text, "'", "k")) & "%'"
  23.  
  24.             'creamos un comando
  25.             Dim comando As New OleDbCommand(sql, cn)
  26.             MiAdaptador.SelectCommand = comando
  27.             MiAdaptador.Fill(MiDataSet)
  28.             DataGridView1.DataSource = MiDataSet.Tables(0)
  29.  
  30.         Catch ex As Exception
  31.             'mostramos el error
  32.             MessageBox.Show("error " & Err.Number.ToString & vbCrLf & ex.Message)
  33.         Finally
  34.             'cerramos la conexion solo si esta abierta
  35.             If (cn.State And ConnectionState.Open) <> 0 Then
  36.                 cn.Close()
  37.             End If
  38.         End Try
  39.  
  40.     End Sub

Otro ejemplo sin utilizar un DataSet:

  1. Dim cn As New OleDbConnection(sConexion)
  2.  
  3.     Dim sSql As String = "Select id_num, campo1, campo2," & _
  4.             " campo3, campo4" & _
  5.             " From tabla1 Where " & _
  6.             " campo1 like &#039;" & Trim(Replace(Me.txtBusqueda.Text, "&#039;", "k")) & "%&#039;"
  7.  
  8.     Dim da As New OleDbDataAdapter(sSql, cn)
  9.     Dim ds As New DataSet
  10.     da.Fill(ds)
  11.     DataGridView1.DataSource = ds.Tables(0)

Ahora vamos a obtener el valor de una columna en una fila seleccionada con doble clic.

  1. Private Sub DataGridView1_RowHeaderMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.RowHeaderMouseDoubleClick
  2.  
  3.         &#039; Creamos la variable que contendrá el valor
  4.  
  5.         Dim Variable As Integer = CInt(DataGridView1.Item(0, DataGridView1.CurrentRow.Index).Value)
  6.  
  7.         &#039; Ahora lo mostramos
  8.         MessageBox.Show(CStr(Variable))
  9.  
  10.     End Sub
  11. End Class