Un ejemplo de como llenar un DataGridView a partir de una consulta a SQL. Utilizaremos una base de datos ms Access.
VB.NET:
-
Imports System.Data
-
Imports System.Data.OleDb
-
-
Public Class frmMain
-
-
Public sConexion As String = "Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & sBaseDatos
-
-
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
-
-
Dim cn As New OleDbConnection(sConexion)
-
Dim MiDataSet As New DataSet
-
Dim MiAdaptador As New OleDb.OleDbDataAdapter
-
-
Try
-
cn.Open()
-
-
' Creamos la consulta
-
-
Dim sql As String = "Select id_num, campo1, campo2," & _
-
" campo3, campo4" & _
-
" From tabla1 Where " & _
-
" campo1 like '" & Trim(Replace(Me.txtBusqueda.Text, "'", "k")) & "%'"
-
-
'creamos un comando
-
Dim comando As New OleDbCommand(sql, cn)
-
MiAdaptador.SelectCommand = comando
-
MiAdaptador.Fill(MiDataSet)
-
DataGridView1.DataSource = MiDataSet.Tables(0)
-
-
Catch ex As Exception
-
'mostramos el error
-
Finally
-
'cerramos la conexion solo si esta abierta
-
If (cn.State And ConnectionState.Open) <> 0 Then
-
cn.Close()
-
End If
-
End Try
-
-
End Sub
Otro ejemplo sin utilizar un DataSet:
VB.NET:
-
Dim cn As New OleDbConnection(sConexion)
-
-
Dim sSql As String = "Select id_num, campo1, campo2," & _
-
" campo3, campo4" & _
-
" From tabla1 Where " & _
-
" campo1 like '" & Trim(Replace(Me.txtBusqueda.Text, "'", "k")) & "%'"
-
-
Dim da As New OleDbDataAdapter(sSql, cn)
-
Dim ds As New DataSet
-
da.Fill(ds)
-
DataGridView1.DataSource = ds.Tables(0)
Ahora vamos a obtener el valor de una columna en una fila seleccionada con doble clic.
VB.NET:
-
Private Sub DataGridView1_RowHeaderMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.RowHeaderMouseDoubleClick
-
-
' Creamos la variable que contendrá el valor
-
-
Dim Variable As Integer = CInt(DataGridView1.Item(0, DataGridView1.CurrentRow.Index).Value)
-
-
' Ahora lo mostramos
-
MessageBox.Show(CStr(Variable))
-
-
End Sub
-
End Class