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