Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

J4P0N315

Formulário de busca e atualização

Recommended Posts

Pessoal...

 

Creio que a minha dúvida é bem simples para a galera mais experiente.

 

Eu criei um formulário para executar uma busca e possibilitar a atualização de qualquer registro de uma tabela.

 

A tabela é a seguinte:

create table funcionarios(
id_func int identity(1,1) not null constraint pk_id_func primary key,
nome_func varchar(30) not null,
senha_func varchar(30) not null,
sexo_func varchar(1),
setor_func varchar(30),
cargo_func varchar(30),
tipo_func varchar(1) not null
)

O meu formulário funcionará da seguinte maneira: Tem um TextBox que receberá um valor qualquer (nome, sexo, setor, etc), que servirá para ser a informação que desejo buscar. Abaixo existe um conjunto de TextBoxes, onde estes receberão as informações do mesmo registro da informação digitada lá no campo de busca, ou seja, existe um TextBox que recebera o campo nome da tabela, outro TextBox que recebera o sexo, um outro que recebera o setor, etc. Como uma busca pode encontrar mais de um registro, existe um controle Button que exibirá o próximo registro e um outro controle do mesmo tipo que fará a tarefa contrária.

 

Apesar de acreditar que esta é uma tarefa simples, não faço nem idéia de como realizá-la.

 

Não quero que ninguém venha aqui e me dê o código "mastigado". Mas para realizar esta tarefa, estou precisando de um bom empurrão...

 

Conto com a ajuda de vocês, OK? :)

 

Muito obrigado!!!

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olá...

Obrigado pela resposta, mas acho que eu não me expressei bem.

 

Com esta tabela do meu post anterior, tenho um CommandButton que faz o seguinte:

Private Sub cmdBuscar_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmdBuscar.Click
        sqlconnection = New SqlConnection(conexao)
        stringsql = "select * from funcionarios where nome_func like '%" & txtNome.Text & "%'"
        sqlconnection.Open()
        sqlcommand = New SqlCommand(stringsql, sqlconnection)
        sqldatareader = sqlcommand.ExecuteReader()
        If sqldatareader.Read = True Then
            lblExibeId.Text = sqldatareader("id_func")
            txtNome.Text = sqldatareader("nome_func")
            txtSenha.Text = sqldatareader("senha_func")
            cboSexo.Text = sqldatareader("sexo_func")
            txtSetor.Text = sqldatareader("setor_func")
            txtCargo.Text = sqldatareader("cargo_func")
            cboTipo.Text = sqldatareader("tipo_func")
            
            ElseIf cboSexo.Text = "M" Then
            cboSexo.Text = "Masculino"
            ElseIf cboSexo.Text = "F" Then
            cboSexo.Text = "Feminino"
            
            
            ElseIf cboTipo.Text = "A" Then
            cboTipo.Text = "Administrador"
            ElseIf cboTipo.Text = "U" Then
            cboTipo.Text = "Usuário"
            
            
            sqldatareader = Nothing
            sqlcommand = Nothing
            sqlconnection = Nothing
            stringsql = Nothing
        
            ElseIf sqldatareader.Read = False Then
            msgBoxCadNaoEncontrado()
        End If
    End Sub

Por exemplo: Eu digito parte de um nome no TextBox txtNome, e como resposta todo o formulário é preenchido com os dados do mesmo registro. Mas é bem provável, dependendo do tamanho do BD, de que mais de um registro seja encontrado. Se eu digitar "Car", por exemplo, me trará os registro da "Carmen" e do "Carlos".

 

Qual o meu intuito para resolver isto: Criar um outro CommandButton que fará todos campos serem preenchidos com o próximo registro.

 

Eu ouvi dizer que existe algo que faz looping (algo de BOF e EOF), e que com isso eu consigo fazer o que quero. Mas não faço nem idéia do que se trata.

 

Conto com a ajuda de vocês! :)

 

Se encontrar algo, volto a postar!

 

Espero ter sido claro na minha questão...

 

Muito obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Certo.

Sua aplicação é web ou windows?

 

Abraços...

 

Me desculpe pela demora, amigo...

 

A minha aplicação é Windows.

:)

 

Obrigado...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET > Windows Applications

 

Você terá que armazenar todos os registros encontrados em uma lista, um dicionário, DataTable ou algo do tipo.

Pode fazer um botão que verifica em qual registro você esta e passa pro próximo, fazendo todo o processo de alimentar os campos do seu formulário novamente.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

Movido Plataforma .NET http://forum.imasters.com.br/public/style_emoticons/default/seta.gif Plataforma .NET > Windows Applications

 

Você terá que armazenar todos os registros encontrados em uma lista, um dicionário, DataTable ou algo do tipo.

Pode fazer um botão que verifica em qual registro você esta e passa pro próximo, fazendo todo o processo de alimentar os campos do seu formulário novamente.

 

Abraços...

 

OK...

 

Você pode me dar um exemplo? Montar um bloco para eu ter uma idéia???

 

Sou iniciante...

:(

 

Obrigado.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Olha, vou tentar dar uma ajuda.

 

1) faca a funcao para pesquisar no banco de dados e retornar os dados em um DataTable (isso eh facil)

2) Outra funcao para preencher os dados do DataTable nos campos na tela (facil tb)

3) Coloque 2 buttons ou o que quizer para navegar entre os registros do datatable e chame a funcao 2) que ele ja preenchera automaticamente os dados na tela.

 

    Public Row as Integer
    Public sDt as DataTable

    Private Function Busca(ByVal Nome As String) As DataTable
        sqlconnection = New SqlConnection(CONEXAO)
        stringsql = "select * from funcionarios where nome_func like '%" & Nome & "%'"
        sqlconnection.Open()
        Dim Da As SqlClient.SqlDataAdapter
        sqlcmd = New SqlCommand(stringsql, sqlconnection)
        Da = New SqlClient.SqlDataAdapter(sqlcmd)
        Row = 0
        Da.Fill(Busca)
    End Function

    Private Sub Preenche(ByVal DT As DataTable)
        If (Row < 0) Or (Row > DT.Rows.Count - 1) Then
            'erro, acabou os dados...
            msgBoxCadNaoEncontrado()
            Exit Sub
        End If
        lblExibeId.Text = DT.Rows(Row)(0)
        txtNome.Text = DT.Rows(Row)(1)
        txtSenha.Text = DT.Rows(Row)(2)
        cboSexo.Text = DT.Rows(Row)(3)
        txtSetor.Text = DT.Rows(Row)(4)
        txtCargo.Text = DT.Rows(Row)(5)
        cboTipo.Text = DT.Rows(Row)(6)

        If cboSexo.Text = "M" Then
            cboSexo.Text = "Masculino"
        ElseIf cboSexo.Text = "F" Then
            cboSexo.Text = "Feminino"
        End If

        If cboTipo.Text = "A" Then
            cboTipo.Text = "Administrador"
        ElseIf cboTipo.Text = "U" Then
            cboTipo.Text = "Usuário"
        End If



    End Sub

Ae eh soh você colocar os 2 Buttons e em um você Faz Row -= 1 e no outro Row += 1 e chama o Preenche e ja era.

 

boa sorte

Compartilhar este post


Link para o post
Compartilhar em outros sites

Muito obrigado pela resposta e me desculpem pela demora.

Ando meio afastado do fórum pois ando meio sem tempo.

Tenho um trabalho de conclusão do módulo para fazer e o tempo é muito curto.

Faço como o professor vai me orientando! :)

 

Eu vou tentar fazer e retornar uma resposta. Dando certo ou não! :)

 

Muito obrigado pela ajuda, mais uma vez.

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.