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

csantos

[Resolvido] Consulta automática de dados

Mensagens Recomendadas

csantos

ola boa tarde

eu estou com uma duvida queria saber se me podem ajudar

tenho um form (cons.Trabalhadores) com os seguites campos:

Numero do Trabalhador ->ComboBox

Nome do Trabalhador -> ComboBox

Data de Nascimento->TextBox

Salario->TextBox

Categoria->TextBox

eu queria quando escolhesse o Numero de Trabalhador que os campos Nome do Trabalhador, Data de Nascimento, Salario e Categoria sejam preenchidas automaticamente com os dados que eu tenho guardado na minha base de dados, e quando eu escolher Nome do Trabalhador preenche os campos Numero do Trabalhador, Data de Nascimento, Salario e Categoria.

tou com dificuldades em fazer o codigo................

Agradeço a ajuda...

eu comecei por fazer o seguite codigo:

Private Sub CB_NumeroTrabalhador_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_NumeroTrabalhador.SelectedIndexChanged
       con = New SqlConnection(connectionstring)
       con.Open()
       Dim cmd As New SqlCommand("SELECT NOME_TRABALHADOR from TRABALHADORES WHERE NUMERO_TRABALHADOR = '" & CB_NumeroTrabalhador.SelectedItem & "' ORDER BY NOME_TRABALHADOR", con)
       Dim drdr As SqlDataReader
       drdr = cmd.ExecuteReader
       drdr.Read()
       CB_Nome_Trabalhador.Text = drdr.Item("NOME_TRABALHADOR").ToString
       con.Close()
   End Sub
   Private Sub CB_Nome_Trabalhador_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_Nome_Trabalhador.SelectedIndexChanged
       con = New SqlConnection(connectionstring)
       con.Open()
       Dim cmd As New SqlCommand("SELECT NUMERO_TRABALHADOR, DATA_NASCIMENTO from TRABALHADORES WHERE NOME_TRABALHADOR = '" & CB_Nome_Trabalhador.SelectedItem & "' ORDER BY NUMERO_TRABALHADOR", con)
       Dim drdr As SqlDataReader
       drdr = cmd.ExecuteReader
       drdr.Read()
       CB_NumeroTrabalhador.Text = drdr.Item("NUMERO_TRABALHADOR").ToString
       con.Close()
   End Sub

Editado por ribeiro55

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
renafi

Ele está a fazer bem. Não precisa usar um dataset se vai só ler informação. Em principio parece que está bem. Mas está a dar-te erro, ou está a preencher as textboxes com que informação?


Oracle Certified Professional - AdministraçãoOracle Certified Professional - Pl/sqlMCPD - Microsoft Certified Professional DeveloperMCTS - Microsoft Certified Technology Specialist

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
csantos

boas

Obrigada mas já consegui fazer o codigo...

deixo aqui o codigo no caso de alguem tiver alguma duvida parecida:

Private Sub CB_NumeroTrabalhador_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_NumeroTrabalhador.SelectedIndexChanged
    con = New SqlConnection(connectionstring)
    con.Open()
    Dim cmd As New SqlCommand("SELECT NOME_TRABALHADOR,DATA_NASCIMENTO,SALARIO,CATEGORIA from TRABALHADORES WHERE NUMERO_TRABALHADOR = '" & CB_NumeroTrabalhador.SelectedItem & "' ORDER BY NOME_TRABALHADOR", con)
    Dim drdr As SqlDataReader
    drdr = cmd.ExecuteReader
    drdr.Read()
    CB_Nome_Trabalhador.Text = drdr.Item("NOME_TRABALHADOR").ToString
    TB_DataNascimento.Text = drdr.Item("DATA_NASCIMENTO").ToString
    TB_Salario.Text = drdr.Item("SALARIO").ToString
    TB_categoria.Text = drdr.Item("CATEGORIA").ToString
    con.Close()
   End Sub
   Private Sub CB_Nome_Trabalhador_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles CB_Nome_Trabalhador.SelectedIndexChanged
    con = New SqlConnection(connectionstring)
    con.Open()
    Dim cmd As New SqlCommand("SELECT NUMERO_TRABALHADOR, DATA_NASCIMENTO,SALARIO,CATEGORIA from TRABALHADORES WHERE NOME_TRABALHADOR = '" & CB_Nome_Trabalhador.SelectedItem & "' ORDER BY NUMERO_TRABALHADOR", con)
    Dim drdr As SqlDataReader
    drdr = cmd.ExecuteReader
    drdr.Read()
    CB_NumeroTrabalhador.Text = drdr.Item("NUMERO_TRABALHADOR").ToString
    TB_DataNascimento.Text = drdr.Item("DATA_NASCIMENTO").ToString
    TB_Salario.Text = drdr.Item("SALARIO").ToString
    TB_categoria.Text = drdr.Item("CATEGORIA").ToString
    con.Close()
   End Sub

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
bioshock

Isso não está a ser lá muito bem feito. Está um bocado aos pontapés. E estás a pecar na segurança ao não passares os dados por parâmetros.

Dim query As String = "SELECT * FROM Tabela WHERE Campo = @campo"
Dim cmd As New SqlCommand(query, con)

cmd.Parameters.Add("@campo", SqlDbType.VarChar).Value = CB_Nome_Trabalhador.SelectedItem.ToString()

if(con.State <> ConnectionState.Open) Then con.Open()

Dim dR As New SqlDataReader = cmd.ExecuteReader()

While(dR.Read())
   // Código
End While
con.Close()

Melhor ainda, seria fazeres uma função que te retornasse um array de valores de acordo com a query.

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.