Buscar valor en una columna especifica del DataGridView
Favor su apoyo en el siguiente código, necesito Buscar un valor en una columna especifica del DataGridView. La columna se llama ("Material"). La base de datos la tengo en MySql. Adjunto código que tengo y me busca en todas las columnas. Gracias de antemano por su apoyo.
Private Sub TextBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress
For i As Integer = 0 To DataGridView1.Rows.Count - 2
For x As Integer = 0 To DataGridView1.ColumnCount - 1
If DataGridView1.Rows(i).Cells(x).Value.ToString.Contains(TextBox2.Text) Then
DataGridView1.Rows(2).Selected = True
Exit Sub
End If
Next x
Next i
MsgBox("ERROR: No es el producto")
TextBox2.Text = ""
End Sub
1 Respuesta
¿El código que tiene no funciona o cual es el detalle con su búsqueda?
Necesito que me busque en una columna especifica ("Material") del DataGriedView, que acepte números, textos y pinte toda la fila al hallar el valor del "Material". Con el código que adjunte me busca en todas las columnas, no pinta toda la fila hallada y solo acepta números no texto, eso quiero corregir.
Puede compartir una imagen de su DataGridView para tratar de reproducir sus datos y el valor que tiene Textbox2. Tex

Imports System.Data
Imports System.Data.SqlClient
Imports MySql.Data.MySqlClient
Imports System.Data.OleDb
Public Class Buscar
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Dim consulta As String
Dim lista As Byte
Dim conexion As MySqlConnection = New MySqlConnection
Dim comando As MySqlCommand = New MySqlCommand
Dim adaptador As New MySqlDataAdapter
Dim datos As DataSet
comando.Connection = conexion
conexion.ConnectionString = "server=192.185.154.34;database=invnesmc_VA05;Uid=invnesmc_VA05;pwd=123456;"
conexion.Open()
If TextBox1.Text <> "" Then
consulta = "SELECT * FROM VA05 WHERE Documento = '" & TextBox1.Text & "'"
adaptador = New MySqlDataAdapter(consulta, conexion)
datos = New DataSet
adaptador.Fill(datos, "VA05")
lista = datos.Tables("VA05").Rows.Count
End If
If lista <> 0 Then
DataGridView1.DataSource = datos
DataGridView1.DataMember = "VA05"
DataGridView1.Columns.Item("Documento").Visible = True
DataGridView1.Columns.Item("Posición").Visible = False
DataGridView1.Columns.Item("Nº_de_reparto").Visible = False
DataGridView1.Columns.Item("Selección").Visible = False
DataGridView1.Columns.Item("Denominación").Visible = False
DataGridView1.Columns.Item("Clase_doc_ventas").Visible = False
DataGridView1.Columns.Item("Fecha_documento").Visible = False
DataGridView1.Columns.Item("Cantidad_confirmada").Visible = False
DataGridView1.Columns.Item("Nº_pedido_cliente").Visible = False
DataGridView1.Columns.Item("Nº_de_pedido").Visible = False
DataGridView1.Columns.Item("Lote").Visible = False
DataGridView1.Columns.Item("Válido_de").Visible = False
DataGridView1.Columns.Item("Validez_a").Visible = False
DataGridView1.Columns.Item("Fecha_de_entrega").Visible = False
DataGridView1.Columns.Item("Creado_por").Visible = False
DataGridView1.Columns.Item("Bloqueo_de_factura").Visible = False
DataGridView1.Columns.Item("Solicitante").Visible = False
DataGridView1.Columns.Item("Tp_cambio").Visible = False
DataGridView1.Columns.Item("Cantidad_de_pedido").Visible = True
DataGridView1.Columns.Item("Almacén").Visible = False
DataGridView1.Columns.Item("Bloqueo_entrega").Visible = False
DataGridView1.Columns.Item("Material").Visible = True
DataGridView1.Columns.Item("Unidad_medida_base").Visible = False
DataGridView1.Columns.Item("Nombre_1").Visible = False
DataGridView1.Columns.Item("Precio_cliente_prev").Visible = False
DataGridView1.Columns.Item("PC_Cantidad_base").Visible = False
DataGridView1.Columns.Item("UM_precio_cliente").Visible = False
DataGridView1.Columns.Item("Moneda_condición").Visible = False
DataGridView1.Columns.Item("Precio_neto").Visible = False
DataGridView1.Columns.Item("Cantidad_base").Visible = False
DataGridView1.Columns.Item("Unidad_de_medida").Visible = False
DataGridView1.Columns.Item("Valor_neto").Visible = False
DataGridView1.Columns.Item("Valor_neto1").Visible = False
DataGridView1.Columns.Item("Sector").Visible = False
DataGridView1.Columns.Item("Status").Visible = False
DataGridView1.Columns.Item("Status1").Visible = False
DataGridView1.Columns.Item("Oficina_de_ventas").Visible = False
DataGridView1.Columns.Item("Grupo_de_vendedores").Visible = False
DataGridView1.Columns.Item("Organización_ventas").Visible = False
DataGridView1.Columns.Item("Un_medida_venta").Visible = False
DataGridView1.Columns.Item("Pto_expedic_Pto_recepción").Visible = False
DataGridView1.Columns.Item("Canal_distribución").Visible = False
DataGridView1.Columns.Item("Fecha_salida_mcías").Visible = False
DataGridView1.Columns.Item("Moneda_del_documento").Visible = False
DataGridView1.Columns.Item("Centro").Visible = False
DataGridView1.Columns.Item("Cantidad_pedido").Visible = False
DataGridView1.Columns.Item("Denominación1").Visible = False
DataGridView1.Columns.Item("Motivo_pedido").Visible = False
DataGridView1.Columns.Item("Motivo_de_rechazo").Visible = False
DataGridView1.Columns.Item("Probabilidad").Visible = False
DataGridView1.Columns.Item("Direc_solicitante").Visible = False
DataGridView1.Columns.Item("Tipo_doc_comercial").Visible = False
DataGridView1.Columns.Item("Indicador_Debe_Haber").Visible = False
DataGridView1.Columns.Item("Niv_lista").Visible = False
DataGridView1.Columns.Item("Fecha_de_precio").Visible = False
DataGridView1.Columns.Item("Fecha_de_conversión").Visible = False
DataGridView1.Columns.Item("Fecha_de_conversión1").Visible = False
DataGridView1.Columns.Item("Tipo_de_cotización").Visible = False
DataGridView1.Columns.Item("Segmento_necesidad").Visible = False
DataGridView1.Columns.Item("Periodo_validez").Visible = False
DataGridView1.Columns.Item("Un_per_val_contrato").Visible = False
DataGridView1.Columns.Item("Categoría_de_validez").Visible = False
DataGridView1.Columns.Item("Fecha_de_instalación").Visible = False
DataGridView1.Columns.Item("Fecha_de_aceptación").Visible = False
DataGridView1.Columns.Item("Concert_contrato").Visible = False
DataGridView1.Columns.Item("Esquema_de_rescisión").Visible = False
DataGridView1.Columns.Item("Actividad").Visible = False
DataGridView1.Columns.Item("Entrada_rescisión").Visible = False
DataGridView1.Columns.Item("Fe_prefer_rescisión").Visible = False
DataGridView1.Columns.Item("Parte_rescindente").Visible = False
DataGridView1.Columns.Item("Motivo_de_rescisión").Visible = False
DataGridView1.Columns.Item("Documento_rescisión").Visible = False
DataGridView1.Columns.Item("Fe_doc_rescisión").Visible = False
DataGridView1.Columns.Item("Fecha_desmontaje").Visible = False
DataGridView1.Columns.Item("Fecha_actividad").Visible = False
DataGridView1.Columns.Item("Actividad1").Visible = False
DataGridView1.Columns.Item("Denominación2").Visible = False
DataGridView1.Columns.Item("Zona_de_ventas").Visible = False
DataGridView1.Columns.Item("Condición_expedición").Visible = False
DataGridView1.Columns.Item("Denominación3").Visible = False
DataGridView1.Columns.Item("Representante_de_Ventas").Visible = False
DataGridView1.Columns.Item("Tipo_de_posición").Visible = False
DataGridView1.Columns.Item("Creado_el").Visible = False
DataGridView1.Columns.Item("Hora").Visible = False
Else
MsgBox("Datos no encontrados")
End If
End Sub
Private Sub TextBox2_KeyPress(sender As Object, e As KeyPressEventArgs) Handles TextBox2.KeyPress
For i As Integer = 0 To DataGridView1.Rows.Count - 2
For x As Integer = 0 To DataGridView1.ColumnCount - 1
If DataGridView1.Rows(i).Cells(x).Value.ToString.Contains(TextBox2.Text) Then
DataGridView1.Rows(2).Selected = True
Exit Sub
End If
Next x
Next i
MsgBox("ERROR: No es el producto")
TextBox2.Text = ""
End Sub
End Class
Perdón su DataGridView lo necesito con datos y el valor del Textbox2. text para ver el dato a buscar en que columna se encentra
Modificando el código ya selecciona la fila al encontrar el dato buscado, la prueba que hice fue buscar el dato en la columna (0), usted cambie por la columna donde tiene el dato a buscar
For i As Integer = 0 To DataGridView1.Rows.Count - 2
If DataGridView1.Rows(i).Cells(0).Value.ToString.Contains(TextBox2.Text) Then
DataGridView1.Rows(i).Selected = True
Exit Sub
End If
Next i
MsgBox("ERROR: No es el producto")
TextBox2.Text = ""
- Compartir respuesta