none
Gravando valor de um textbox no Mysql com C# RRS feed

  • Pergunta

  • Olá, Pessoal!

    Sou iniciante com C#, estou precisando inserir valor dos textbox (aspx) em um banco de dados mysql,

    Já possuo a conexão e esta ok.

    O problema esta em passar os valores para o banco, acredito que o erro seja o tipo de dados com o qual trabalho.

     

    Meu codigo;

    public void Button1_Click1(object sender, EventArgs e)
        {

            MySqlConnection conn = new MySqlConnection();
            MySqlCommand comando = new MySqlCommand();

            conn.ConnectionString = ("Server=localhost;Database=banco2309;Uid=root;Pwd=******;");

            try
            {
                conn.Open();
                comando.Connection = conn;
                comando.CommandText = "insert into usuario(Nome,Email,Endereço) values (@Nome,@Email,@Endereço)";
                comando.Parameters.AddWithValue("@Nome", textNome);
                comando.Parameters.AddWithValue("@Email", textEmail);
                comando.Parameters.AddWithValue("@Endereço", textEndreco);

                comando.ExecuteNonQuery();
                conn.Close();
                Label1.Text = "Informações gravadas com sucesso";
            }
            catch (Exception ex)
            {
                Label1.Text=(ex.ToString());
            }
            finally
            {
                conn.Close();
            }


        }

     

    VALEU!!

    domingo, 26 de setembro de 2010 19:03

Respostas

  •  comando.Parameters.AddWithValue("@Nome", textNome);
                comando.Parameters.AddWithValue("@Email", textEmail);
                comando.Parameters.AddWithValue("@Endereço", textEndreco);

    Se estes são os componentes text da sua tela você tem que usar o propriedade text assim:

     

     comando.Parameters.AddWithValue("@Nome", textNome.Text);
                comando.Parameters.AddWithValue("@Email", textEmail
    .Text);

                comando.Parameters.AddWithValue("@Endereço", textEndreco.Text);

     

    abc


    Luciano Almeida MCAD / MCSD .NET
    domingo, 26 de setembro de 2010 19:40
  • outra coisa o conn.Open();

    deve ficar fora do Try porque se der problema ao abrir a conexão tb deve dar problema no close

     

    conn.Open()

    try

    {

    }

    finally

    {

    conn.Close();

    }


    Luciano Almeida MCAD / MCSD .NET
    domingo, 26 de setembro de 2010 19:42

Todas as Respostas

  •  comando.Parameters.AddWithValue("@Nome", textNome);
                comando.Parameters.AddWithValue("@Email", textEmail);
                comando.Parameters.AddWithValue("@Endereço", textEndreco);

    Se estes são os componentes text da sua tela você tem que usar o propriedade text assim:

     

     comando.Parameters.AddWithValue("@Nome", textNome.Text);
                comando.Parameters.AddWithValue("@Email", textEmail
    .Text);

                comando.Parameters.AddWithValue("@Endereço", textEndreco.Text);

     

    abc


    Luciano Almeida MCAD / MCSD .NET
    domingo, 26 de setembro de 2010 19:40
  • outra coisa o conn.Open();

    deve ficar fora do Try porque se der problema ao abrir a conexão tb deve dar problema no close

     

    conn.Open()

    try

    {

    }

    finally

    {

    conn.Close();

    }


    Luciano Almeida MCAD / MCSD .NET
    domingo, 26 de setembro de 2010 19:42
  • Muito Obrigado Luciano,

    Me desesperei um pouco e me esqueci de pegar o text do controle comboBox.

    Descobri a mancada quando vi que havia gravado no banco as inf. do controle Ex; (System.Web.UI.WebControls.TextBox).

     

    Em relacao a abertura da conexao vc tem razão,

    Ja fiz as alterações e ok,

     

    Obrigado pela força, Abraço!
    segunda-feira, 27 de setembro de 2010 17:54
  • Bom dia galera.

    Seguinte, o meu código está praticamente com a mesma sintaxe do seu código de Insert.

     

     

    Debugando apertando o F11 ele passa por todas as linhas sem mostrar nenhum erro.

    Digito os dados no TextBox e me retorna uma mensagem de "Cadastrado com Sucesso".

     

    Só que eu olho no banco, não cadastrou nada. Vou postar o código para ver, se tem alguma coisa de errado.

     

     private void bt_cadastraTecnico_Click(object sender, EventArgs e)
        {
          MySqlConnection cadastra_tecnico = new MySqlConnection();
          MySqlCommand comando_tecnico = new MySqlCommand();
    
          cadastra_tecnico.ConnectionString = ("server=localhost;User=root;pwd=wireless;database=ordem_servico");
          cadastra_tecnico.Open();
    
          try
          {
            comando_tecnico.Connection = cadastra_tecnico;
            comando_tecnico.CommandText = ("INSERT INTO cad_tecnico (nome_tecnico,tel_tecnico,email_tecnico) VALUES (@nome_tecnico,@tel_tecnico,@email_tecnico)");
            comando_tecnico.Parameters.AddWithValue("@nome_tecnico", txt_nomeTecnico.Text);
            comando_tecnico.Parameters.AddWithValue("@tel_tecnico", txt_telTecnico.Text);
            comando_tecnico.Parameters.AddWithValue("@email_tecnico", txt_emailTecnico.Text);
            
            MessageBox.Show("Cadastrado com Sucesso");
    
            dtGrid_tecnico.Update();
          }
          catch (Exception ex)
          {
            MessageBox.Show("Ocorreu um erro: " + ex.Message);
          }
          finally 
          {
            cadastra_tecnico.Close();
          }
    
          txt_emailTecnico.Text = "";
          txt_nomeTecnico.Text = "";
          txt_telTecnico.Text = "";
    
          txt_nomeTecnico.Focus();
        }
    
    


    No meu banco tem 4 Colunas: id_tecnico(Primary Key, Auto Incremento), nome_tecnico(varchar), tel_tecnico(inteiro), email_tecnico(varchar).

     

    Quando adiciono por linha de comando no MySQL Query Browser, funciona normalmente.

    Só por comando no c# que fica essa frescura.

     

    OBS: não aparece erro nenhum.

    Muito Obrigado.

     

    Espero que vocês possam me  ajudar.

     

    quinta-feira, 1 de setembro de 2011 12:12