Jump to content
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

Sign in to follow this  
kazzx

Consultas

Recommended Posts

kazzx

viva,

escrevendo este código que mais tarde é chamado num botão:

Private Sub trata_grelha(ByVal Valor As Long)

        Dim DA1 As New SqlDataAdapter("SELECT codcliente AS [codigo cliente], nome AS [Nome do Cliente], localidade AS [Localidade] FROM clientes WHERE nome= '" & txtnome.Text & "'", Module1.conn)
        Dim DS As New DataSet
        Dim comando As String

        DA1.Fill(DS, "clientes")
        dv1.DataSource = DS
        dv1.DataMember = "clientes"

        lblcod.Text = ""

        dv1.Columns(0).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter
        dv1.Columns(0).AutoSizeMode = DataGridViewAutoSizeColumnMode.NotSet
        dv1.Columns(0).Visible = False
        dv1.Columns(0).Resizable = DataGridViewTriState.False
        dv1.Columns(0).SortMode = DataGridViewColumnSortMode.NotSortable

        dv1.Columns(1).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
        dv1.Columns(1).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
        dv1.Columns(1).Resizable = DataGridViewTriState.False
        dv1.Columns(1).SortMode = DataGridViewColumnSortMode.NotSortable

        dv1.Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleLeft
        dv1.Columns(2).AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill
        dv1.Columns(2).Resizable = DataGridViewTriState.False
        dv1.Columns(2).SortMode = DataGridViewColumnSortMode.NotSortable

        comando = "SELECT * FROM clientes WHERE codcliente="

        If Valor = -1 Then

            If dv1.RowCount > 0 Then

                dv1.Rows(dv1.RowCount - 1).Cells(1).Selected = True
                Module1.cmd = New SqlCommand(comando & dv1(0, dv1.RowCount - 1).Value, Module1.conn)

                GoTo preenche

            End If

        Else

            If dv1.RowCount Then

                If dv1.RowCount > 0 Then

                    dv1.Rows(Valor).Cells(1).Selected = True
                    Module1.cmd = New SqlCommand(comando & dv1.Rows(Valor).Cells(0).Value, Module1.conn)

                    GoTo Preenche

                End If

            End If

        End If

        Call inactiva_toolstrip()

        Exit Sub

Preenche:

        Dim DRclientes As SqlDataReader = Module1.cmd.ExecuteReader

        DRclientes.Read()

        lblcod.Text = DRclientes("codcliente")
        'codcliente = DRclientes("codcliente")

        DRclientes.Close()

    End Sub

ele devolve-me tudo o que existe na tabela da BD independentemente do que escrever na caixa de texto para efectuar o parâmetro da pesquisa (se quero pesquisar os dados do Manel ou do António), quando na realidade queria que aparecesse apenas o parâmetro de pesquisa escrito na caixa de texto.

por exemplo, se eu escrever na caixa de texto o número '4' ele devolve-me todos os campos da BD, se escrever 'P' ele torna-me a devolver todos os campos da tabela, quando na tabela não existe nenhuma letra 'P'.

cumps

Share this post


Link to post
Share on other sites
Tuntankamon

O erro está no primerio SELECT do adapteR?

Tu quando dizes que devolve tudo estás a falar do DV?

Depois utiliza parâmetros...

Mete isto logo no inicio do procedimento para ver se melhora qualquer coisa....

DS.Tables("clientes").Clear()

Share this post


Link to post
Share on other sites
kazzx

eu alterei para isto e resolveu o problema..

Dim DA1 As New SqlDataAdapter("SELECT codcliente AS [codigo cliente], nome AS [Nome do Cliente], localidade AS [Localidade] FROM clientes WHERE nome LIKE '" & txtnome.Text & "%'", Module1.conn)

obrigado na mesma :confused:

cumprimentos.

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  

×

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.