Jump to content
csantos

[Resolvido] Consulta automática de dados

Recommended Posts

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

Edited by ribeiro55

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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

Share this post


Link to post
Share on other 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.

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.


×
×
  • 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.