Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

kazzx

Consultas

Mensagens Recomendadas

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

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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()

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros 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.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.