J4P0N315 0 Denunciar post Postado Setembro 17, 2009 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
quintelab 91 Denunciar post Postado Setembro 17, 2009 Você quer que sua busca traga mais de um registro? Se for isso basta utilizar o like na sua pesquisa sql. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
J4P0N315 0 Denunciar post Postado Setembro 20, 2009 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
quintelab 91 Denunciar post Postado Setembro 21, 2009 Certo. Sua aplicação é web ou windows? Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
J4P0N315 0 Denunciar post Postado Setembro 23, 2009 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
quintelab 91 Denunciar post Postado Setembro 23, 2009 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
J4P0N315 0 Denunciar post Postado Setembro 23, 2009 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
quintelab 91 Denunciar post Postado Setembro 24, 2009 Primeiro passo fazer um select e alimentar um DataTable. Isso é simples, tente fazer e poste aqui. Abraços... Compartilhar este post Link para o post Compartilhar em outros sites
nexus 0 Denunciar post Postado Setembro 26, 2009 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
J4P0N315 0 Denunciar post Postado Setembro 28, 2009 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