Jump to content
Sign in to follow this  
dio123

Escolher colunas Datagridview

Recommended Posts

dio123

bem tenho, uma datagridview, que mostra todos os dados dos produtos.  Na textbox introduzo o nome do produto , ele procura na coluna produto , e na tabela fica seleccionado a linha correspondente a esse produto.

Agora gostaria de saber qual a melhor maneira fazer fazer o seguinte:

Em vez de o código abaixo procurar exclusivamente na coluna produto,  ser eu escolher a coluna atraves de uma combobox,

a coluna que eu quero procurar.

pensei por antes o código abaixo, assim    If "produto" = ComboBox1.Text Then  i = 1  , para todas as colunas, mas alem de o código ficar grande, e de  funcionar , não demonstra profissionalismo e eficácia. Penso eu....

Gostaria que me dessem uma dicas.

    Private Sub TextBox2_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles txtPesquisa.TextChanged
        Dim txt As String = Nothing
        For Each row As DataGridViewRow In dgv.Rows
            For Each cell As DataGridViewCell In dgv.Rows(row.Index).Cells
                If txtPesquisa.Text <> "" Then

                     ' aqui defino a coluna onde o dado inserido da textbox vai ser procurado
                    If cell.ColumnIndex = 1 Then
                        txt = cell.Value.ToString.ToLower
                        If txt.Contains(txtPesquisa.Text.ToLower) Then
                            If txt.StartsWith(txtPesquisa.Text.ToLower.Substring(0, txtPesquisa.Text.Length)) Then
                                Me.dgv.Rows(cell.RowIndex).Selected = True
                            End If
                        End If
                    End If
                Else
                    Me.dgv.Rows(cell.RowIndex).Selected = False
                End If
            Next
        Next
    End Sub

Share this post


Link to post
Share on other sites
jpaulino

Tu não precisas disto: For Each cell As DataGridViewCell In dgv.Rows(row.Index).Cells

A seguir ao ciclo nas linhas, usas  row.Cells(1).Value = "" (onde 1 é o index da coluna e onde podes também usar o nome)

Ou seja, algo como:

  txt = row.Cells(1).Value.ToString.ToLower

Share this post


Link to post
Share on other sites
dio123

para não estar a criar mais topicos sobre datagridview, vou aproveitar este post.

Na anterior questão resolvi usar este codigo

cnn = New SqlConnection(myConnectionString)
            strSQL = "SELECT * FROM produtos WHERE " & Me.txtcategoria.Text & " LIKE '%" & Me.txtpesquisa.Text.Trim & "%'"
            cnn.Open()

muito mais facil e simples.

Questao nova:

Há alguma opção que  quando abre a from do  datagridview  o utilizador escolhe as colunas que quer que fiquem a mostra e as colunas que ficam "escondidas"

agradecia

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.