1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

[Resolvido] Duvida

Discussão em 'Programação' iniciada por Ruben_Barbosa, 5 de Janeiro de 2009. (Respostas: 12; Visualizações: 630)

  1. Ruben_Barbosa

    Ruben_Barbosa Power Member

    Código:
    
      Dim i As Object
            'Define o DataAdapter e os parâmetros
            daSql = New SqlDataAdapter("select Utilizador from  Username ", cnSQL)
            Dim ds As DataSet = New DataSet()
            'Chamar a tabela
            daSql.Fill(ds, "Username")
    
            Combo2(1).Items.Add(Module1.Utilizador)
            For i = 0 To ds.Tables.Item(0).Rows.Count - 1
                Combo2(1).Items.Add(ds.Tables.Item("Username").Rows(i).Item("Utilizador"))
            Next
    
    
    Este é o meu codigo e o que faz é o seguinte,

    Eu faço login e ele aparece-me o 1 Nome do login que fiz porque fiz Combo2(1).Items.Add(Module1.Utilizador) ou seja uma autenticação e como tal ao fazer o login ele aparece-me o nome .
    So que dps vou a base de dados buscar os dados dos outros utilizadores e queria que o utilizador que executou o login , não aparece-se juntamente com os outros utilizadores que eu chamo.
    Ou seja que me Apareca a lista sim mas sem repetir o utilizador que fez o login.
     
    Última edição: 6 de Janeiro de 2009
  2. nasic

    nasic Power Member

    Então é fazer uma query onde retorne todos os nomes excepto aquele que ja tens.
    Algo como: select utilizador from username where utilizador NOT LIKE 'o_nome'
    onde o_nome deverá ser uma variavel onde tens o utilizador em questão.

    Penso que deverás ter que fazer a concatenação do query com a tal variavel.

    Good luck
     
  3. PNDmartins

    PNDmartins Power Member

    Se o utilizador que estás a adicionar já existe na base de dados porque o estás a adicionar antes de ires buscar os dados?
     
  4. ribeiro55

    ribeiro55 Power Member

    O nasic já te respondeu, e bem.
     
  5. Ruben_Barbosa

    Ruben_Barbosa Power Member

    Ribeiro eu acho que me expliquei mal.

    É o Seguinte eu faço login certo.

    E au Fazer login aparece me um combobox com o nome do utilizador que fez login , e dps vou chamar o restos dos useres a BD mas tambem la ta o nome do user que fez login. o Que o nasci dá e eu ja testei em antes de postar isso aqui so que o aquilo faz e não aparecer o nome mas dps quando chamo a BD vem la o nome . E o Que eu quero é por exemplo,

    nomes

    rui
    pedro
    luis
    roger

    faço login com roger

    e dps na combo box aparece-me

    roger
    rui
    pedro
    luis.

    Espero que tenham compreendido a minha duvida.

    desde já agradeço a todos pela sua ajuda.
     
  6. ribeiro55

    ribeiro55 Power Member

    Eu percebi à primeira, todos percebemos à primeira.
    O nasic já te deu a resposta.

    Adicionas primeiro o user que fez login à combobox, e só DEPOIS de retornares todos os users com uma query filtrada por um NOT LIKE como o nasic disse, adicionas o resto à combobox.

    Se na DB tiveres:

    Ze
    Manuel
    Maria
    Josefina
    Capitolina

    E se a Josefina fizer login, adicionas primeiro a Josefina e depois o resultado da query, tal e qual como tens para não te causar confusão:

    Código:
    Combo2(1).Items.Add(Module1.Utilizador)
    For i = 0 To ds.Tables.Item(0).Rows.Count - 1
    Combo2(1).Items.Add(ds.Tables.Item("Username").Rows(i).Item("Utilizador"))
    Next
    A única diferença está na query.
    Ao invés de usares:

    Código:
    select Utilizador from  Username
    vais usar

    Código:
    "SELECT Utilizador FROM Username NOT LIKE '" & Module1.Utilizador & "'"
    que se o Module1.Utilizador for: Josefina, essa query devolve-te:

    Ze
    Manuel
    Maria
    Capitolina

    EDIT: Ou usa um operador para excluír o user já ligado. O truque está na query.
     
    Última edição: 6 de Janeiro de 2009
  7. Ruben_Barbosa

    Ruben_Barbosa Power Member

    MAs so te falta uma correção ai :P
    Código:
    "SELECT Utilizador FROM Username where utilizador NOT LIKE '" & Module1.Utilizador & "'"
    
    Ribeiro :S

    Parece que n tou a conseguir transmitir-vos o que se esta passando.

    Meu codigo tá bem que eu sei e até ja testei na Query da BD

    Código:
     'Preenche Responsavel
    
            Dim i As Object
            'Define o DataAdapter e os parâmetros
            daSql = New SqlDataAdapter("SELECT Utilizador FROM  Username where Utilizador NOT LIKE  '" & Module1.Utilizador & "'", cnSQL)
            Dim ds As DataSet = New DataSet()
            'Chamar a tabela
            daSql.Fill(ds, "Username")
    
            Combo2(1).Items.Add(Module1.Utilizador)
            For i = 0 To ds.Tables.Item(0).Rows.Count - 1
                Combo2(1).Items.Add(ds.Tables.Item("Username").Rows(i).Item("Utilizador"))
            Next
    
    
    faço login tudo mt bem


    rui
    pedro
    roger
    luis
    tomas

    fiz login com roger

    Aparece-me
    roger
    rui
    pedro
    roger
    luis
    tomas

    Ou seja Aquele Roger não devia tar ali LOL
     
    Última edição: 6 de Janeiro de 2009
  8. ribeiro55

    ribeiro55 Power Member

    Apanha a exception e vê o que está de errado.
    Ou tira a catrefa de espaços que tens entre as palavras que não é nada saudável.
     
    Última edição: 6 de Janeiro de 2009
  9. ribeiro55

    ribeiro55 Power Member

    Acho errado apagar posts.
    É como estares a ver um log de conversa e alguém ter apagado algumas centenas de linhas aleatóriamente.

    Resumindo todos os posts:

    O código original está correcto, o que tinha de mudar era o que vinha da DB, e por consequência, altera-se:

    Código:
    select Utilizador from  Username
    para

    Código:
    "SELECT Utilizador FROM Username WHERE utilizador NOT LIKE '" & Module1.Utilizador & "'"
    e a lista já é devolvida sem o user actualmente ligado.
     
  10. Ruben_Barbosa

    Ruben_Barbosa Power Member

    Exacto Logo o Codigo Correcto fica


    Alterações

    Código:
    SELECT Utilizador FROM  Username
    
    Para

    Código:
    "SELECT Utilizador FROM  Username where Utilizador NOT LIKE  '" & Module1.Utilizador & "'"
    
    Código:
    'Preenche Responsavel
            Dim i As Object
            'Define o DataAdapter e os parâmetros
            daSql = New SqlDataAdapter("SELECT Utilizador FROM  Username where Utilizador NOT LIKE  '" & Module1.Utilizador & "'", cnSQL)
            Dim ds As DataSet = New DataSet()
            'Chamar a tabela
            daSql.Fill(ds, "Username")
    
    'CHAMA O NOME DO LOGIN PARA 1
            Combo2(1).Items.Add(Module1.Utilizador)
            For i = 0 To ds.Tables.Item(0).Rows.Count - 1
                Combo2(1).Items.Add(ds.Tables.Item("Username").Rows(i).Item("Utilizador"))
            Next
    
     
  11. nasic

    nasic Power Member

    Então ta resolvido ruben?
    Afinal era cm tinha dito, ficou foi um bocado confuso.

    Abraços
     
  12. PNDmartins

    PNDmartins Power Member

    Só vi isto agora, mas ca granda confusão.. Lolada
     
  13. Ruben_Barbosa

    Ruben_Barbosa Power Member

    Nasci bgd ficou sim senhora ;)
     

Partilhar esta Página