Este es un potente control para mostrar datos por pantalla, tiene muchisimas opciones, trataremos de ver un ejemplo simple y luego mencionaré todo lo que yo uso cuando trabajo con un DataGridView.
'Conexión a la base de datos y obtención de los registros en un DataTable Dim cnn As New SqlConnection cnn.ConnectionString = _ "Data Source=..\SQLEXPRESS; Initial Catalog=BasedePrueba; Integrated Security=True" 'Algunas lineas de este código tuvieron que ser divididas 'por no entrar en ekl ancho de pantalla. cnn.Open() Dim ds As New DataSet Dim da As New SqlDataAdapter Dim sql As String sql = "Select * from SaldosClientes" da.SelectCommand = New SqlCommand(sql, cnn) da.Fill(ds) cnn.Close() 'con esta linea obtengo un objeto DataTable '(dt) con los registros resultantes Dim dt As DataTable = ds.Tables(0) 'Ahora puedo asignar el DataTable (dt) al DataGridView1 DataGridView1.DataSource = dt
Con el código anterior alcanza para llenar nuestro primer DataGridView. Ahora veremos que mas se puede hacer con este control.
'Definimos que fuente usar
DataGridView1.Font = _
New Drawing.Font("Tahoma", 8, FontStyle.Regular, GraphicsUnit.Point
'Que columnas estarán visibles
DataGridView1.Columns("Id").Visible = False
DataGridView1.Columns("Codigo").Visible = True
DataGridView1.Columns("RazonSocial").Visible = True
DataGridView1.Columns("Fecha").Visible = True
DataGridView1.Columns("Saldo").Visible = True
'Cual sera el orden de las columnas
DataGridView1.Columns("Id").DisplayIndex = 0
DataGridView1.Columns("Codigo").DisplayIndex = 1
DataGridView1.Columns("RazonSocial").DisplayIndex = 2
DataGridView1.Columns("Fecha").DisplayIndex = 3
DataGridView1.Columns("Saldo").DisplayIndex = 4
'Ancho de columnas
DataGridView1.Columns("Id").Width = 100
DataGridView1.Columns("Codigo").Width = 100
DataGridView1.Columns("RazonSocial").Width = 100
DataGridView1.Columns("Fecha").Width = 100
DataGridView1.Columns("Saldo").Width = 100
'El encabezado de las columnas
DataGridView1.Columns("Id").HeaderText = "Id"
DataGridView1.Columns("Codigo").HeaderText = "Código"
DataGridView1.Columns("RazonSocial").HeaderText = "Razón Social"
DataGridView1.Columns("Fecha").HeaderText = "Fecha"
DataGridView1.Columns("Saldo").HeaderText = "Saldo"
'La alineación de las celdas de cada columna
DataGridView1.Columns("Id").DefaultCellStyle.Alignment = _
DataGridViewContentAlignment.BottomRight
DataGridView1.Columns("Codigo").DefaultCellStyle.Alignment = _
DataGridViewContentAlignment.BottomLeft
DataGridView1.Columns("RazonSocial").DefaultCellStyle.Alignment = _
DataGridViewContentAlignment.BottomLeft
DataGridView1.Columns("Fecha").DefaultCellStyle.Alignment = _
DataGridViewContentAlignment.BottomLeft
DataGridView1.Columns("Saldo").DefaultCellStyle.Alignment = _
DataGridViewContentAlignment.BottomRight
'La alinación del encabezado de cada columna
DataGridView1.Columns("Id").HeaderCell.Style.Alignment = _
DataGridViewContentAlignment.BottomRight
DataGridView1.Columns("Codigo").HeaderCell.Style.Alignment = _
DataGridViewContentAlignment.BottomLeft
DataGridView1.Columns("RazonSocial").HeaderCell.Style.Alignment = _
DataGridViewContentAlignment.BottomLeft
DataGridView1.Columns("Fecha").HeaderCell.Style.Alignment = _
DataGridViewContentAlignment.BottomLeft
DataGridView1.Columns("Saldo").HeaderCell.Style.Alignment = _
DataGridViewContentAlignment.BottomRight
'El formato de las columnas numéricas
DataGridView1.Columns("Saldo").DefaultCellStyle.Format = "##,##0.00"
Bueno, pasé mucho tiempo buscando todas estas opciones de configuración para dejar un DataGridView como me gustaba. Espero que les sea util y en breve estaré subiendo mas acerca de este gran control de datos.
[...] 12, 2009 Hoy quiero mostrarles un sencillo ejemplo de como conectarse a SQL Server y llenar un DataGridView, pero sin escribir ni una sola línea de código. Es decir que haremos todo arrastrando y soltando [...]
Gracias,
Estos ejemplos son muy buenos sobre todo con la simpleza que los explicas.
Felicidades.
Muy buena tu explicación, pero me gustaría saber si puedes ayudarme, a ver como hacerlo en forma inversa, es decir, teniendo los datos en un DataGridView (Ejemplo 1 fila y 4 columnas), agregarlo a una nueva fila de una base de datos de las mismas caracteristicas (1 fila, 4 columnas), apreciaré mucho tu ayuda. Gracias.
Gracias por el ejemplo de llenado y configuracion del datagridview, me sirvio bastante.
Felicitaciones, simple y sencillo…un ejemplo a imitar
GRAIAS POR LA INFORMACION ESTA MUY BIEN EXPLICADO ME HA SERVIDO DE MUCHO GRACIAS POR TU AYUDA.
HEY GRACIAS POR LA INFORMACION SIGUE ASI, EXCELENTEMENTE EXPLICADO Y DE VERDAD FUNCIONAL PARA NOSOTROS LOS PROGRAMADORES QUE UTILIZAMOS EL DATAGRID CON FRECUENCIA
Hola tengo una duda que me corroe hace dias,
como averiguo el indice de la fila que tengo seleccionada en un datagridview.
para poder pasarla aun formulario y me enseñe los datos en el formulario completos me estoy volviendo loco
creo que con datagridview1.currentrow será suficiente
Suerte
Muy bueno
pero me gustaría saber como hago para validar los datos ingresados en una celda del datagridview columna tipo fecha así como se hace en un maskeditbox.
Y para realizar toda clase de validacion
hola a todos.. quisiera q me ayudara ya q estoy trabajando con un datagridview q contiene un objeto datagridviewcomboboxcolumn ai les va el codigo para ver si me ayudan a encontrar el error o lo q le haga falta: Private Sub BtnAddRequisito_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnAddRequisito.Click
Dim sConexion As String = Negocio.Conexion
Dim Ds_datos As New DataSet
Dim sQuery As String CboRequisitoColumn.Name = “Materia”
Me.DGVMaterias.Columns.Add(CboRequisitoColumn)
sQuery = “SELECT asg_codigo as codigo, asg_nombre as descripcion FROM spsatbasignatura where asg_semestre<" & Me.CMBSemestre.Text Ds_datos = Accesar_Datos.GetDataSet(sQuery, sConexion)
my_DGVCboColumn.DataSource = Ds_datos.Tables(0)
my_DGVCboColumn.Name = "Datos"
my_DGVCboColumn.DisplayMember = Ds_datos.Tables(0).Columns("descripcion").ToString
my_DGVCboColumn.ValueMember = Ds_datos.Tables(0).Columns("codigo").ToString Me.DGVMaterias.Columns.RemoveAt(0)
Me.DGVMaterias.Columns.Insert(0, my_DGVCboColumn)
End Sub'el anterior crea los grid
'el siguiente es donde quiero
'asignar o insertar el codigo q me da el
'objeto my_DGVCbocolumn q se encuentra dentro de DGVMaterias xq creo yo q no debo
'hacer referencia a CboRequisitoColumnPrivate Sub Agregar_Requisitos()
Dim sQuery As String = ""
Dim sConexion As String = Negocio.Conexion
Dim Ds_Datos As New DataSet
Dim KROW As Integer = 0
Dim aux As String
Dim r As Integer Try For KROW = 0 To Me.DGVMaterias.RowCount – 1
aux = Me.my_DGVCboColumn.Items(KROW).ToString
r = CType(aux, Integer)
sQuery = "spi_spsatbrequisito_asignatura " & Codigo & "," & r & ""
Ds_Datos = Accesar_Datos.GetDataSet(sQuery, sConexion)
Next KROW
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
End TryEnd Sub' de antemano gracias