Jump to content
Sign in to follow this  
RobinHood

Filtrar dados na data grid

Recommended Posts

RobinHood

Boas pessoal.... mais um quebra  :wallbash:

uma data grid que recebe valores da bd e tenho uns filtros.....

semttulobha.png

- http://imageshack.us/m/6/5372/semttulobha.png

Eu estou a carregar os dados para a segunda combobox, dependendo do tipo de filtro que escolher na 1ª combobox

com este código...

Private escolha As New filtrarncsDataContext
'primeiro

  Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click

        Select Case cbtipo.Text


            Case "Ano"


                escolha.Log = Console.Out

                Dim consulta = From NCs In escolha.NCs _
                        Where (NCs.anon Like Me.Cbdadosbd.Text & "**" And NCs.idn > 0) _
                        Select NCs
                Me.NCsBindingSource.DataSource = consulta


            Case "Nome de Cliente"

                escolha.Log = Console.Out

                Dim consulta = From NCs In escolha.NCs _
                        Where (NCs.nomecliente Like Me.Cbdadosbd.Text & "**" And NCs.idn > 0) _
                        Select NCs
                Me.NCsBindingSource.DataSource = consulta
End Select



    End Sub

'ESTA É A PARTE ONDE CARREGAR DE ACORDO COM A ESCOLHA FEITA EM CIMA 
Private Sub cbtipo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbtipo.MouseEnter, cbtipo.SelectedIndexChanged


        Select Case cbtipo.Text

            Case "Ano"


                'AQUI PREENCHE A COMBOBOX COM OS DADOS PERTENDIDOS

                Cbdadosbd.DataSource = DataSetNCs.Tables(0)

                Cbdadosbd.DisplayMember = "anon"

                Cbdadosbd.ValueMember = "anon"


            Case "Nome de Cliente"

                'AQUI PREENCHE A COMBOBOX COM OS DADOS PERTENDIDOS

                Cbdadosbd.DataSource = DataSetNCs.Tables(0)

                Cbdadosbd.DisplayMember = "nomecliente"

                Cbdadosbd.ValueMember = "nomecliente"

End Select

    End Sub

Mas tenho um problema que é a redundância de informação na combobox onde aparece 2011....

se tiver  lá 20 registos com 2011 --> irão aparecer na combobox

Esta 2ª combobox recebe os valores que estão naquela coluna da bd através do DataSet...

O que eu queria era saber como é que posso evitar aquela redundância dentro da segunda combobox 🤔

Obs. Este método que estou a utilizar funciona na perfeição :cheesygrin:... excepto aquele problema da redundância...  😡

Existe algum método mais simples??? e que não complique tanto?? de acordo a redundância 🤔

Share this post


Link to post
Share on other sites
Caça

Tens de fazer um agrupamento na consulta


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
aesp

Se os valores que ele estiveres a receber na combobox forem da consulta de SQL podes simplesmente usar o Distinct que retira as repetições.

Share this post


Link to post
Share on other sites
RobinHood

ok... consigo e funciona no sql... mas com o código que tenho como é que faço a query aqui no vb???? 🤔

Share this post


Link to post
Share on other sites
RobinHood

já está... obrigado....

fiz simplesmente assim

        
'-->ESTA É A PARTE ONDE CARREGAR DE ACORDO COM A ESCOLHA FEITA EM CIMA 
Private Sub cbtipo_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbtipo.MouseEnter, cbtipo.SelectedIndexChanged

Select Case cbtipo.Text

            Case "Ano"

                Dim ConnectionString As String = Con

                Dim connection As New SqlConnection(ConnectionString)

                Dim command As New System.Data.SqlClient.SqlCommand("SELECT DISTINCT anon FROM NCs ", connection)


                connection.Open()

                command.Parameters.AddWithValue("@AAA", Me.cbtipo.Text)

                Dim apap As System.Data.SqlClient.SqlDataReader = command.ExecuteReader()

                ''Limpa os dados da combobox
                Cbdadosbd.Items.Clear()

                If apap.HasRows Then

                    While apap.Read() ''-> Para ler todos os dados. O que tinhas so le o primeiro volar
                        Cbdadosbd.Items.Add(apap.GetValue(0).ToString()) ''-> Numa combobox, adiciona-se os valores
                    End While

                End If

                connection.Close()



            Case "Nome de Cliente"

                Dim ConnectionString As String = Con

                Dim connection As New SqlConnection(ConnectionString)

                Dim command As New System.Data.SqlClient.SqlCommand("SELECT DISTINCT nomecliente FROM NCs where idn>0 ", connection)


                connection.Open()

                command.Parameters.AddWithValue("@AAA", Me.cbtipo.Text)

                Dim apap As System.Data.SqlClient.SqlDataReader = command.ExecuteReader()

                ''Limpa os dados da combobox
                Cbdadosbd.Items.Clear()

                If apap.HasRows Then

                    While apap.Read() ''-> Para ler todos os dados. O que tinhas so le o primeiro volar
                        Cbdadosbd.Items.Add(apap.GetValue(0).ToString()) ''-> Numa combobox, adiciona-se os valores
                    End While

                End If

                connection.Close()

End Select

Share this post


Link to post
Share on other sites
Caça

Podias fazer mais ou menos assim

Dim consulta = (From NCs In escolha.NCs Where NCs.anon Like Me.Cbdadosbd.Text & "**" And NCs.idn > 0 Select NCs.Ano Group NCs By NCs.Ano Into Group)


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
RobinHood

Ya :cheesygrin:... também... mas assim como tenho está a funcionar a 5 maravilhas :cheesygrin:... mas vou guardar o pedaço de código que aqui postas-te para mais tarde.... :cheesygrin:

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.