none
Pegar valor preenchido no textbox RRS feed

  • Pergunta

  •  string sql = "INSERT INTO CBMOV (DEBITO,CREDITO,DATAMOV,VALOR,CODHIST,HISTORICO,PROPR) VALUES (@DEBITO,@CREDITO,@DATAMOV,@VALOR,@CODHIST,@HISTORICO,@PROPR)";

                OleDbCommand cmd = new OleDbCommand(sql.ToString(), conn);

                conn.Open();

                cmd.Parameters.AddWithValue("@DEBITO", dropcontadeb0.Text);
                cmd.Parameters.AddWithValue("@CREDITO", dpcontcred0.Text);
                cmd.Parameters.AddWithValue("@DATAMOV", DatePicker2.SelectedDate);
                cmd.Parameters.AddWithValue("@VALOR", txt_valor0.Text);
                cmd.Parameters.AddWithValue("@CODHIST", dropCodhist0.Text);
                cmd.Parameters.AddWithValue("@HISTORICO", txthistorico0.Text);
                cmd.Parameters.AddWithValue("@PROPR", Drop_propr0.Text);

                cmd.ExecuteNonQuery();

                cmd.Connection.Close();

    Apos o insert quero pegar os valores que inseri e gravar em outra tabela.

    quinta-feira, 8 de março de 2012 11:43

Todas as Respostas

  • Bom dia.

    Se a rotina for logo após o seu insert, use os mesmos valores dos textbox.

    Ou isso não é possivel?


    Consultoria .NET
    ANALISTA DESENVOLVEDOR
    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como resposta.
    Blog .Net Descomplicado

    quinta-feira, 8 de março de 2012 11:52
  • Isso que estou querendo fazer
    quinta-feira, 8 de março de 2012 12:00
  • Se os dados estao na tela voce pode usá-los, por exemplo:

                cmd.Parameters.AddWithValue("@DEBITO", dropcontadeb0.Text);
                cmd.Parameters.AddWithValue("@CREDITO", dpcontcred0.Text);
                cmd.Parameters.AddWithValue("@DATAMOV", DatePicker2.SelectedDate);
                cmd.Parameters.AddWithValue("@VALOR", txt_valor0.Text);
                cmd.Parameters.AddWithValue("@CODHIST", dropCodhist0.Text);
                cmd.Parameters.AddWithValue("@HISTORICO", txthistorico0.Text);
                cmd.Parameters.AddWithValue("@PROPR", Drop_propr0.Text);
    Os dados em negrito, ainda estao preenchidos? use eles.


    Consultoria .NET
    ANALISTA DESENVOLVEDOR
    Se esta sugestão for útil, por favor, classifique-a como útil.
    Se ela lhe ajudar a resolver o problema, por favor, marque-a como resposta.
    Blog .Net Descomplicado

    quinta-feira, 8 de março de 2012 12:10
  • Isso que estou querendo fazer

    Olá Tiago, depois do insert você chama outro método? Se sim, não vai dar certo, pois vai perdo o valor dos textbox.

    Para você usar os valor do textbox, tem que ser depois do insert já ou você chama o método passando como parametro seus textbox.

    Abraço.


    Se esta sugestão for útil, por favor, classifique-a como útil. Se ela lhe ajudar a resolver o problema, por favor, marque-a como resposta

    quinta-feira, 8 de março de 2012 14:15
  • Olá Tiago,

    Apos vc fazer o insert no banco, crei uma outro rotina parecida com a qual vc criou o seu insert, mas ao ivés de inser utilize o

    Select DEBITO,CREDITO,DATAMOV,VALOR,CODHIST,HISTORICO,PROPR from CBMOV where id = "campo"

    Após vc criar essa rotina, crei um metodo de retorno exemplo.

    Vc terá que passar algum campos para o select para ele trazer o id do cadastro que foi inserido no banco.

    Depois que vc obter uma linha de retorno com os dados cadastrados, vc terá que criar mais um metodo para preencher seus textBox. EXEMPLO.

    public void carregaTextBox()

    {

    try

    {

    TextBox txt = new TextBox();

    TextBox txt1 = new TextBox();

    TextBox txt2 = new TextBox();

    TextBox txt3 = new TextBox();

    DataTable dt = new DataTable();

    txt.Text = dt.Rows[0][

    "nome da coluna"].ToString();

    txt1.Text = dt.Rows[0][

    "nome da coluna"].ToString();

    txt2.Text = dt.Rows[0][

    "nome da coluna"].ToString();

    }

    catch (Exception ex)

    {

    throw ex;

    }

    }

    Vê se isso te ajuda, qualquer coisa escreve ai.


    CASO A RESPOSTA TENHA AJUDADO FAVOR MARCAR COMO RESPONDIDA.

    quinta-feira, 8 de março de 2012 15:12
  • Amigo Tiago, acredito que esse código ai está dentro de um método. Caso não esteja, pense na possibilidade de criar um método pra isso.
    Vou descrever um exemplo de uso, conforme citou acima, mas simplificado, para não perdermos tempo.
    Imagine que terei os campos TextBox  txtNome, txtValor e dropContaDeb.
    Assim irei criar 2 métodos para gravar estas informações. E nos dois métodos valores semelhantes seriam passados como parametro.
    Teriamos o método que seria acionado quando o botão gravar fosse clicado.

    protected btnGravar(.........) {
      string nome = txtNome.Text;
      string valor = txtValor.Text;
      string conta = dropConta.Text;
      if (inserirCBMOV(nome, valor, conta) {
          inserirValorConta(valor, conta);
      }
    }

    Veja que faço uma verificação com IF, se foi inserido os valores no método inserirCBMOV(...) ai sim vou inserir no inserirValorConta(...), caso contrário ocorreu algum erro e será exibido para o usuário.
    Agora os métodos inserirCBMOV(...) que retorna TRUE se foi incluído com sucesso os dados:
    /// Retorna TRUE se gravou com sucesso, caso contrário retorna FALSE.
    private bool inserirCBMOV(string nome, string valor, string conta) {
    	string sql = "INSERT INTO CBMOV (NOME, VALOR, CONTA) VALUES (@NOME,@VALOR,@CONTA)";
            OleDbCommand cmd = new OleDbCommand(sql.ToString(), conn);
            conn.Open();
            cmd.Parameters.AddWithValue("@NOME", nome);
            cmd.Parameters.AddWithValue("@VALOR", valor);
            cmd.Parameters.AddWithValue("@CONTA", conta);
            int resultado = cmd.ExecuteNonQuery();
            cmd.Connection.Close();
    	return (resultado > 0);
    }

    E o método  inserirValorConta(string valor, string conta) ficaria assim:
    private void inserirValorConta(valor, conta){
    	string sql = "INSERT INTO VALORCONTA(VALOR, CONTA) VALUES (@VALOR,@CONTA)";
            OleDbCommand cmd = new OleDbCommand(sql.ToString(), conn);
            conn.Open();
            cmd.Parameters.AddWithValue("@VALOR", valor);
            cmd.Parameters.AddWithValue("@CONTA", conta);
            cmd.ExecuteNonQuery();
            cmd.Connection.Close();
    }

    Veja que no método btnGravar eu pego os valores dos TextBoxes da tela.
    Depois eu chamo um método de cada vez, acredito que esteja parecida com isso sua implementação!
    Entendeu?

    É ajudando os outros que ajudamos nos mesmos...

    quinta-feira, 8 de março de 2012 23:33