Usuário com melhor resposta
Inserir dados na TextBox e retornar os dados

Pergunta
-
Bom dia pessoal!!
Sou novo aqui, e gostaria da ajuda de vcs...
Bom é o seguinte, estou montando uma telinha de chamado com windows form, sempre qdo tiver um chamado no banco, ela abre...dentro dela tenho uma textbox anotações, se quiser anotar algo...o que eu preciso!!
Ao inserir os dados dentro da textbox, irá salvar no banco...
qdo eu iniciar o projeto, quero q esse dados, me retornem na msm textbox, +/- um histórico das anotações...tdas que eu inseri...
vlw!!!
Obs. Visual 2010 C#
Banco MySql
Respostas
-
Natan segue um exemplo de como pode ser feito, sei que os companheiros postaram mais é que já fiz o exemplo, o mesmo servirá de material de estudo pra vc. Criei um BD MySql com os campos (Id, Anotacao) exibo um histórico dos dados em um ListBox e uso o textbox para cadastrar novas anotações o código está todo comentado. Bons estudos!
public Form1() { InitializeComponent(); } //Classe Anotações public class Anotacoes { public int Id { get; set; } public string Anotacao { get; set; } } //Click do botão gravar private void btnGravar_Click(object sender, EventArgs e) { //variável auxiliar p/ mecanismo de mensagens int aux = -1; //Conexão MySqlConnection conn = new MySqlConnection(@"server=localhost;User Id=root;pwd=admin;database=test;"); //Comando para inserir parametrizado string comando = "INSERT INTO teste (Anotacao) values (@Anotacao)"; //instância do comando MySqlCommand cmd = new MySqlCommand(comando, conn); //Preenchimento dos parâmetros cmd.Parameters.AddWithValue("@Anotacao", txtAnotacao.Text); //abro a conexão conn.Open(); //aux recebe o retorno da execução do comando aux = Convert.ToInt32(cmd.ExecuteNonQuery()); //fecho conexão conn.Close(); //se aux for maior que zero a inserção foi bem //sucedida if (aux > 0) { //mensagem de confirmação MessageBox.Show("Anotação salva!"); //limpo textbox txtAnotacao.Text = ""; //Atualizo o listbox CarregaLIstBox(); } else { //mensagem de erro MessageBox.Show("Erro!"); } } //método que consulta o bd e retorna um list //da classe anotações private List<Anotacoes> RecuperarAnotacao() { //instância da lista List<Anotacoes> lista = new List<Anotacoes>(); MySqlConnection conn = new MySqlConnection(@"server=localhost;User Id=root;pwd=admin;database=test;"); string comando = "SELECT Id,Anotacao from teste"; MySqlCommand cmd = new MySqlCommand(comando, conn); conn.Open(); //instância do leitor MySqlDataReader leitor = cmd.ExecuteReader(); //se tiver linhas if (leitor.HasRows) { //enquanto leitor lê while (leitor.Read()) { //nova anotação Anotacoes a = new Anotacoes(); //recupero os valores do bd a.Id = Convert.ToInt32(leitor["Id"].ToString()); a.Anotacao = leitor["Anotacao"].ToString(); //adiciono a lista lista.Add(a); } } //fecho conexão conn.Close(); //retorno a lista return lista; } private void Form1_Load(object sender, EventArgs e) { //carrego a listbox CarregaLIstBox(); } private void CarregaLIstBox() { //limpo os itens da listbox lbHistoricoAnotacao.Items.Clear(); //percorro a lista foreach (var item in RecuperarAnotacao()) { //adiciono os itens do list //na listbox lbHistoricoAnotacao.Items.Add(item.Anotacao); } }
Abraços e espero ter ajudado!
Estudar, Estudar e Estudar! Não existe caminho curto.- Sugerido como Resposta [J]unior sexta-feira, 15 de julho de 2011 12:48
- Marcado como Resposta Natan Piassi Magusso sexta-feira, 15 de julho de 2011 17:02
-
Segue:
private void CarregaLIstBox() { //-----------------Altere este Método ------------------- // como fiz Aqui txtAnotacao.Text = ""; foreach (var item in RecuperarAnotacao()) { txtAnotacao.Text += item.Anotacao +"\r\n"; } //-----------------Altere este Método ------------------- }
abraços!
Estudar, Estudar e Estudar! Não existe caminho curto.- Marcado como Resposta Natan Piassi Magusso sexta-feira, 15 de julho de 2011 17:02
Todas as Respostas
-
-
Bom dia Natan,
para retornar os dados você deve efetuar a consulta no banco. recomendo usar o dataset para retornar os dados, depois de preencher o dataset, é só passar os valores para os componentes.
segue exemplo de como retornar os valores para o componente:
Suponhamos que na sua Query o campo 3 seja o que você deseja passar para o textbox. Você pode referenciá-lo por indice ou pelo nome da coluna:
por indice:
Anotacao.Text = dataset.Tables[0].Rows[0][3].ToString();
por nome:
Anotacao.Text = dataset.Tables[0].Rows[0]["Anotacao"].ToString();
Espero ter Ajudado.
" É Melhor ficar calado e parecer um Idiota do que Abrir a boca e dar toda a Certeza! "
Developer
-
tipo, insiro algo na textbox = Natan...salvei no banco.
quero q qdo eu iniciar o projeto, ele me retorna na msm textbox, o q eu acabei de inserir..
tipo sempre q eu entrar no projeto ele me retorna td q ja foi inserido, +/- um historico...bom nao sei se deu pra entender.
-
mais os dados que você pretende retornar do banco vem de várias tabelas?
esses dados que você insere no textbox, são armazenados sempre no mesmo registro no banco?
" É Melhor ficar calado e parecer um Idiota do que Abrir a boca e dar toda a Certeza! "
Developer
-
private void btnSalvar_Click(object sender, Even
tArgs e)
{
MySqlConnection conn = new MySqlConnection();
MySqlCommand comando = new MySqlCommand();
conn.ConnectionString = ("Server=Servidor;Database=Web;Uid=root;Pwd=xxxx;Connect Timeout=30");
conn.Open();
try
{
comando.Connection = conn;
comando.CommandText = "INSERT INTO usuarios(anotacoes) values (@anotacoes)";
comando.Parameters.AddWithValue("@anotacoes", txtAnotacoes.Text);
comando.ExecuteNonQuery();
conn.Close();
MessageBox.Show("Salvo com sucesso!");
}
catch (Exception ex)
{
MessageBox.Show("Ocorreu um erro: " + ex.Message);
}
finally
{
conn.Close();
}tipo esse e o botao salvar, ele salva no banco blz, agora so quero q qdo eu iniciar o projeto, a textbox, me retorna o q ja foi insirido..
-
Ola Natan,Como você está utilizando banco de dados MySQL, presumo que esteja fazendo a conexão através de um Driver ODBC certo?Para retornar o 'histórico' das anotações, basta inserir no evento onFormLoad da sua tela uma consulta no banco de dados retornando todas as anotações mais antigas.Você poderia utilizar assim:...ODBCConnection conn = new ODBCConnection("String de conexão com o banco");conn.Open();ODBCCommand cmd = new ODBCCommand("SELECT tx_anotacao FROM TB_ANOTACAO");ODBCDataReader reader = cmd.ExecuteReader();while(reader.Read()){TextBox.Text += reader["tx_anotacao"].ToString() + "\r\n";}conn.Close();...Também aconselho que você utilize o componente RichTextBox ao invés de um TextBox normal.
- Sugerido como Resposta Jefferson Alan sexta-feira, 15 de julho de 2011 12:41
-
Cara faz o seguinte,faça a consulta no banco quando você iniciar o projeto, e (não sei se o Mysql da suporte ao DataAdapter) se ele der suporte, preencha o dataset com o dataAdapter e devolva o valor para o textbox:veja o exemplo (sql):
try { sqlConection.Open(); String sInstrucaoSql = "SpSe1SolCompra " + CodEmp.Text + " , " + Numero.Text; //Gravando os dados em um DataSet para posterior Exibição// SqlDataAdapter DataAdapter = new SqlDataAdapter(sInstrucaoSql, sqlConection); DataSet dataset = new DataSet(); if (DataAdapter.Fill(dataset) != 0) { lbDataSolicitacao.Text = Funcoes.TrabalhaDataII(Convert.ToDateTime(dataset.Tables[0].Rows[0]["DataSol"].ToString())); Solicitante.Text = dataset.Tables[0].Rows[0]["Solicitante"].ToString(); Destino.Text = dataset.Tables[0].Rows[0]["AplicacaoConsulta"].ToString(); Observacoes.Text = dataset.Tables[0].Rows[0]["Obs"].ToString(); } } catch (Exception ex) { MessageBox.Show("Erro ao Carregar a Tabela da Solicitação " + Numero.Text + "!" + ex.ToString(), "Aprovação Solicitação de Compras", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { sqlConection.Close(); }
Veja se te ajuda
" É Melhor ficar calado e parecer um Idiota do que Abrir a boca e dar toda a Certeza! "
Developer
-
Natan segue um exemplo de como pode ser feito, sei que os companheiros postaram mais é que já fiz o exemplo, o mesmo servirá de material de estudo pra vc. Criei um BD MySql com os campos (Id, Anotacao) exibo um histórico dos dados em um ListBox e uso o textbox para cadastrar novas anotações o código está todo comentado. Bons estudos!
public Form1() { InitializeComponent(); } //Classe Anotações public class Anotacoes { public int Id { get; set; } public string Anotacao { get; set; } } //Click do botão gravar private void btnGravar_Click(object sender, EventArgs e) { //variável auxiliar p/ mecanismo de mensagens int aux = -1; //Conexão MySqlConnection conn = new MySqlConnection(@"server=localhost;User Id=root;pwd=admin;database=test;"); //Comando para inserir parametrizado string comando = "INSERT INTO teste (Anotacao) values (@Anotacao)"; //instância do comando MySqlCommand cmd = new MySqlCommand(comando, conn); //Preenchimento dos parâmetros cmd.Parameters.AddWithValue("@Anotacao", txtAnotacao.Text); //abro a conexão conn.Open(); //aux recebe o retorno da execução do comando aux = Convert.ToInt32(cmd.ExecuteNonQuery()); //fecho conexão conn.Close(); //se aux for maior que zero a inserção foi bem //sucedida if (aux > 0) { //mensagem de confirmação MessageBox.Show("Anotação salva!"); //limpo textbox txtAnotacao.Text = ""; //Atualizo o listbox CarregaLIstBox(); } else { //mensagem de erro MessageBox.Show("Erro!"); } } //método que consulta o bd e retorna um list //da classe anotações private List<Anotacoes> RecuperarAnotacao() { //instância da lista List<Anotacoes> lista = new List<Anotacoes>(); MySqlConnection conn = new MySqlConnection(@"server=localhost;User Id=root;pwd=admin;database=test;"); string comando = "SELECT Id,Anotacao from teste"; MySqlCommand cmd = new MySqlCommand(comando, conn); conn.Open(); //instância do leitor MySqlDataReader leitor = cmd.ExecuteReader(); //se tiver linhas if (leitor.HasRows) { //enquanto leitor lê while (leitor.Read()) { //nova anotação Anotacoes a = new Anotacoes(); //recupero os valores do bd a.Id = Convert.ToInt32(leitor["Id"].ToString()); a.Anotacao = leitor["Anotacao"].ToString(); //adiciono a lista lista.Add(a); } } //fecho conexão conn.Close(); //retorno a lista return lista; } private void Form1_Load(object sender, EventArgs e) { //carrego a listbox CarregaLIstBox(); } private void CarregaLIstBox() { //limpo os itens da listbox lbHistoricoAnotacao.Items.Clear(); //percorro a lista foreach (var item in RecuperarAnotacao()) { //adiciono os itens do list //na listbox lbHistoricoAnotacao.Items.Add(item.Anotacao); } }
Abraços e espero ter ajudado!
Estudar, Estudar e Estudar! Não existe caminho curto.- Sugerido como Resposta [J]unior sexta-feira, 15 de julho de 2011 12:48
- Marcado como Resposta Natan Piassi Magusso sexta-feira, 15 de julho de 2011 17:02
-
Natan segue um exemplo de como pode ser feito, sei que os companheiros postaram mais é que já fiz o exemplo, o mesmo servirá de material de estudo pra vc. Criei um BD MySql com os campos (Id, Anotacao) exibo um histórico dos dados em um ListBox e uso o textbox para cadastrar novas anotações o código está todo comentado. Bons estudos!
public Form1() { InitializeComponent(); } //Classe Anotações public class Anotacoes { public int Id { get; set; } public string Anotacao { get; set; } } //Click do botão gravar private void btnGravar_Click(object sender, EventArgs e) { //variável auxiliar p/ mecanismo de mensagens int aux = -1; //Conexão MySqlConnection conn = new MySqlConnection(@"server=localhost;User Id=root;pwd=admin;database=test;"); //Comando para inserir parametrizado string comando = "INSERT INTO teste (Anotacao) values (@Anotacao)"; //instância do comando MySqlCommand cmd = new MySqlCommand(comando, conn); //Preenchimento dos parâmetros cmd.Parameters.AddWithValue("@Anotacao", txtAnotacao.Text); //abro a conexão conn.Open(); //aux recebe o retorno da execução do comando aux = Convert.ToInt32(cmd.ExecuteNonQuery()); //fecho conexão conn.Close(); //se aux for maior que zero a inserção foi bem //sucedida if (aux > 0) { //mensagem de confirmação MessageBox.Show("Anotação salva!"); //limpo textbox txtAnotacao.Text = ""; //Atualizo o listbox CarregaLIstBox(); } else { //mensagem de erro MessageBox.Show("Erro!"); } } //método que consulta o bd e retorna um list //da classe anotações private List<Anotacoes> RecuperarAnotacao() { //instância da lista List<Anotacoes> lista = new List<Anotacoes>(); MySqlConnection conn = new MySqlConnection(@"server=localhost;User Id=root;pwd=admin;database=test;"); string comando = "SELECT Id,Anotacao from teste"; MySqlCommand cmd = new MySqlCommand(comando, conn); conn.Open(); //instância do leitor MySqlDataReader leitor = cmd.ExecuteReader(); //se tiver linhas if (leitor.HasRows) { //enquanto leitor lê while (leitor.Read()) { //nova anotação Anotacoes a = new Anotacoes(); //recupero os valores do bd a.Id = Convert.ToInt32(leitor["Id"].ToString()); a.Anotacao = leitor["Anotacao"].ToString(); //adiciono a lista lista.Add(a); } } //fecho conexão conn.Close(); //retorno a lista return lista; } private void Form1_Load(object sender, EventArgs e) { //carrego a listbox CarregaLIstBox(); } private void CarregaLIstBox() { //limpo os itens da listbox lbHistoricoAnotacao.Items.Clear(); //percorro a lista foreach (var item in RecuperarAnotacao()) { //adiciono os itens do list //na listbox lbHistoricoAnotacao.Items.Add(item.Anotacao); } }
Abraços e espero ter ajudado!
Estudar, Estudar e Estudar! Não existe caminho curto. -
Segue:
private void CarregaLIstBox() { //-----------------Altere este Método ------------------- // como fiz Aqui txtAnotacao.Text = ""; foreach (var item in RecuperarAnotacao()) { txtAnotacao.Text += item.Anotacao +"\r\n"; } //-----------------Altere este Método ------------------- }
abraços!
Estudar, Estudar e Estudar! Não existe caminho curto.- Marcado como Resposta Natan Piassi Magusso sexta-feira, 15 de julho de 2011 17:02
-