none
Erro - Seqüência de entrada não estava em um formato incorreto RRS feed

  • Pergunta

  • Amigos , estou com um código que ao executar ele inclui com sucesso no banco de dados o solicitado , verifiqui no BD e realmente gravou tudo certinho.. so que apos dar a mensagem que foi incluido com sucesso ele aponta nessa linha do programa e diz que a sequencia de entrada nao estava em um formato incorreto

    nesta linha do codigo

    valorPcs =

    Convert.ToDouble(txtTotalPecas.Text);
     
     

     

    este é meu codigo

     

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using MySql.Data.MySqlClient;
    
    
    namespace GerTec
    {
        public partial class frmOrcamentos : Form
        {
            MySqlConnection dbConexao;
            MySqlDataAdapter dbAdapter;
       //     MySqlDataReader retconsulta;
      //      MySqlCommand cmdConsultar;
            public DataSet dsBanco;
            public string Banco = "Persist Security Info=False;server=localhost;database=bdgertec;uid=root;server=localhost;database=bdgertec;uid=root;pwd=2525";
            public int linhaClick;
    
            double valorPcs;
            double valorMo;
            
    
            
    
            
            public frmOrcamentos()
            {
                InitializeComponent();
    
                verificarBanco();
                pnlDadosClientes.Visible = false;
                string Date = DateTime.Now.ToShortDateString();
                lblDtOrcamento.Text = Date;
        //        txtTotalPecas.Text = "0";
                lblAreceber.Text = "0";
    
                valorMo = 0;
                valorPcs = 0;
    
                
            }
    
            // função para conexão ao banco de dados
            private void verificarBanco()
            {
                dsBanco = new DataSet();
                dbConexao = new MySqlConnection(Banco);
                try
                {
                    dbConexao.Open();
                }
                catch
                {
                    MessageBox.Show("Problemas com o Banco de Dados");
                }
                if (dbConexao.State == ConnectionState.Open)
                {
                    atualizaGrid();
                }
            }
            public void limpaCampos()
            {
                txtNomeCliente.Text = "";
                lblFoneCliente.Text = "";
                lblEnderecoCliente.Text = "";
                lblNumResCliente.Text = "";
                lblBairroCliente.Text = "";
                lblCidadeCliente.Text = "";
                lblUfCliente.Text = "";
                lblDtOrcamento.Text = "";
                lblNumOrcamento.Text = "";
                txtAparelho.Text = "";
                txtMarca.Text = "";
                txtModelo.Text = "";
                rtbDefeito.Text = "";
                rtbServicoExecutado.Text = "";
                txtTotalPecas.Text = "";
                txtTotalMaoObra.Text = "";
                lblTotalOrcamento.Text = "";
                cbxAprovacao.Text = "";
                mskDataAprovacao.Text = "";
                cbxPagto.Text = "";
                txtValorPagoCliente.Text = "";
                lblAreceber.Text = "";
                cbxEntrega.Text = "";
                rtbObsOrcamento.Text = "";
            }
    
            private void atualizaGrid()
            {
                string sql = "Select *from tbcliente";
                dbAdapter = new MySqlDataAdapter(sql, dbConexao);
                dsBanco = new DataSet();
                dbAdapter.Fill(dsBanco, "tbcliente");
                dtgOrcamento.DataSource = dsBanco;
                dtgOrcamento.DataMember = "tbcliente";
            }
            
            private void btnSair_Click(object sender, EventArgs e)
            {
                this.Close();
            }
    
            private void frmOrcamentos_Load(object sender, EventArgs e)
            {
    
        
    
            }
    
            private void dtgOrcamento_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                btnGrava.Enabled = true;
                linhaClick = int.Parse(e.RowIndex.ToString());
                if (linhaClick != -1)
                {
    
                  
                    txtNomeCliente.Text = dtgOrcamento[1, linhaClick].Value.ToString();
                    lblFoneCliente.Text =dtgOrcamento[2, linhaClick].Value.ToString();
                    mskNasctoCliente.Text = dtgOrcamento[3, linhaClick].Value.ToString();
                    cbxTipoDocto.Text = dtgOrcamento[4, linhaClick].Value.ToString();
                    txtNumTipoDocto.Text = dtgOrcamento[5, linhaClick].Value.ToString();
                    txtRgCliente.Text = dtgOrcamento[6, linhaClick].Value.ToString();
                    lblEnderecoCliente.Text = dtgOrcamento[7, linhaClick].Value.ToString();
                    lblNumResCliente.Text = dtgOrcamento[8, linhaClick].Value.ToString();
                    lblBairroCliente.Text = dtgOrcamento[9, linhaClick].Value.ToString();
                    lblCidadeCliente.Text = dtgOrcamento[10, linhaClick].Value.ToString();
                    lblUfCliente.Text = dtgOrcamento[11, linhaClick].Value.ToString();
                    mskCepCliente.Text = dtgOrcamento[12, linhaClick].Value.ToString();
                    txtEmailCliente.Text = dtgOrcamento[13, linhaClick].Value.ToString();
                    rtbObsCliente.Text = dtgOrcamento[14, linhaClick].Value.ToString();
                    
                    
                 
    
                }
            }
    
            private void btnGrava_Click(object sender, EventArgs e)
            {
    
                    
                if ((txtNomeCliente.Text == string.Empty))
                {
    
                    MessageBox.Show("Obrigatório o preenchimento dos campos", "Mensagem de Alerta");
                    limpaCampos();
                    txtNomeCliente.Focus();
    
    
                }
                    else
                    {
    
                       
                        MySqlConnection cn2 = new MySqlConnection(Banco);
                        cn2.Open();
    
    
                        string incluiSql = "insert into tborcamento(cliente, telefone, nascto, tipoDocto, cpf, rg, rua, num, bairro, cidade, uf, cep, email, dataorcamento, aparelho, marca, modelo, defeito, servicoexecutado, valorpecas, valormaoobra, valortotal, estaaprovado, dataaprovacao, pagou, valorrecebido, valorareceber, entregou, dataentrega, observacao) values (" +
                        "\'" + txtNomeCliente.Text + "\', " +
                        "\'" + lblFoneCliente.Text + "\', " +
                        "str_to_date(\'" + mskNasctoCliente.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + cbxTipoDocto.Text + "\', " +
                        "\'" + txtNumTipoDocto.Text + "\', " +
                        "\'" + txtRgCliente.Text + "\', " +
                        "\'" + lblEnderecoCliente.Text + "\', " +
                        "\'" + lblNumResCliente.Text + "\', " +
                        "\'" + lblBairroCliente.Text + "\', " +
                        "\'" + lblCidadeCliente.Text + "\', " +
                        "\'" + lblUfCliente.Text + "\', " +
                        "\'" + mskCepCliente.Text + "\', " +
                        "\'" + txtEmailCliente.Text + "\', " +
                        "str_to_date(\'" + lblDtOrcamento.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + txtAparelho.Text + "\', " +
                        "\'" + txtMarca.Text + "\', " +
                        "\'" + txtModelo.Text + "\', " +
                        "\'" + rtbDefeito.Text + "\', " +
                        "\'" + rtbServicoExecutado.Text + "\', " +
                        "\'" + double.Parse(txtTotalPecas.Text).ToString() + "\', " +
                        "\'" + double.Parse(txtTotalMaoObra.Text).ToString() + "\', " +
                        "\'" + double.Parse(lblTotalOrcamento.Text).ToString() + "\', " +
                        "\'" + cbxAprovacao.Text + "\', " +
                        "str_to_date(\'" + mskDataAprovacao.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + cbxPagto.Text + "\', " +
                        "\'" + double.Parse(txtValorPagoCliente.Text).ToString() + "\', " +
                        "\'" + double.Parse(lblAreceber.Text).ToString() + "\', " +
                        "\'" + cbxEntrega.Text + "\', " +
                        "str_to_date(\'" + mskDtEntrega.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + rtbObsOrcamento.Text + "\')";
                        MySqlConnection dbConexao15 = new MySqlConnection(Banco);
                        dbConexao15.Open();
                        MySqlCommand cmdIncluir = new MySqlCommand(incluiSql, dbConexao15);
                        cmdIncluir.ExecuteNonQuery();
                        MessageBox.Show("Inclusão efetuada com sucesso!", "Mensagem do Sistema");
                        limpaCampos();
                    }
                    
    
           //         travaJanelas();
                    atualizaGrid();
                   
                    btnCancelar.Enabled = false;
                   
          //          txtCidadeCliente.Focus();
    
                }
    
            private void btnLocalizarCliente_Click(object sender, EventArgs e)
            {
                if (btnLocalizarCliente.Text == "Procurar")
                {
                    btnLocalizarCliente.Text = "Executar";
                    txtNomeCliente.Enabled = true;
                    txtNomeCliente.Focus();
                }
                else
                {
                    btnLocalizarCliente.Text = "Procurar";
                    txtNomeCliente.Enabled = false;
                    if (txtNomeCliente.Text != "")
                    {
                        string sqlSelect = "Select *from tbcliente where cliente like '%" + txtNomeCliente.Text + "%'";
                        MySqlCommand cmdPesquisar = new MySqlCommand(sqlSelect, dbConexao);
                        cmdPesquisar.ExecuteNonQuery();
                        dbAdapter = new MySqlDataAdapter(sqlSelect, dbConexao);
                        dsBanco = new DataSet();
                        dbAdapter.Fill(dsBanco, "tbcliente");
                        dtgOrcamento.DataSource = dsBanco;
                        dtgOrcamento.DataMember = "tbcliente";
                    }
                    else
                    {
                        atualizaGrid();
                    }
                    txtNomeCliente.Clear();
                }
            }
    
            private void txtTotalPecas_TextChanged(object sender, EventArgs e)
            {
                valorPcs = Convert.ToDouble(txtTotalPecas.Text);
                lblTotalOrcamento.Text = (valorPcs + valorMo).ToString("n");
            }
    
            private void txtTotalMaoObra_TextChanged(object sender, EventArgs e)
            {
                valorMo = Convert.ToDouble(txtTotalMaoObra.Text);
                lblTotalOrcamento.Text = (valorPcs + valorMo).ToString("n");
            }
    
                }
        }
    
    
    

     

    quarta-feira, 19 de outubro de 2011 23:08

Respostas

  • Acho que é porque quando você efetua um registro (ou não),o texto do textBox é alterado... para nada.E,quando ele é alterado,tenta converter para Int32.Não sei se usando o método Clear() no textbox daria nesse erro.

    Faça um tratamento de exceção no evento TextChanged dos textBoxes.Verifique se o texto deles é nulo,assim,por ex.:

    if(txtTotalMaoObra.Text.Trim().Length != 0) {
        // O código do txtTotalMaoObra
    }
    

    E,se não me engano,as datas no MySQL são nesse formato : '00-00-0000'.

    • Editado Vitor dos Santos sexta-feira, 21 de outubro de 2011 23:29
    • Marcado como Resposta Grizante terça-feira, 25 de outubro de 2011 11:13
    sexta-feira, 21 de outubro de 2011 23:29

Todas as Respostas

  • O que você digita no txtTotalPecas?

    quarta-feira, 19 de outubro de 2011 23:12
  • oi Vitor..

     

    digito numeros.. valor monetario

    quarta-feira, 19 de outubro de 2011 23:22
  • este é o script do Banco dados

     

    # MySQL-Sript Assistencia
    #
    # Autor: Almir Julio Grizante
    # --------------------------------------------------------
    
    
    CREATE DATABASE bdgertec;
    
    USE bdgertec;
    
    #
    # Table structure for table 'usuario'
    #
    
    CREATE TABLE IF NOT EXISTS tbusuario (
      	codigousuario int(3) NOT NULL,
      	nomeusuario varchar(50),
      	emailusuario varchar(50),
      	senhausuario varchar(6),
      	PRIMARY KEY (codigousuario)
    );
    
    
    CREATE TABLE IF NOT EXISTS tbcep (
     	codigocep int(15) auto_increment,
      	cep varchar(10) NOT NULL,
    	tipo varchar(15) NOT NULL,
     	rua varchar(60) NOT NULL,
     	bairro varchar(50) NOT NULL,	
     	cidade varchar(50) NOT NULL,
      	uf varchar(2) NOT NULL,
    	antiga varchar(60),
    	lei varchar(20),
     	PRIMARY KEY (codigocep)
    );
    
    
    CREATE TABLE IF NOT EXISTS tbcliente (
      	codigocliente int(15) auto_increment,
      	cliente varchar(60) NOT NULL,
    	telefone varchar(15),
    	nascto date,
    	tipoDocto varchar(4),
      	cpf varchar(15),
    	rg varchar(15),
      	rua varchar(60),
      	num varchar(6),
      	bairro varchar(50),
      	cidade varchar(50),
      	uf varchar(2),
    	cep varchar(10),
      	email varchar(60),
    	obs text(300),
      	PRIMARY KEY (codigocliente)
    );
    
    
    CREATE TABLE IF NOT EXISTS tbempresa (
        	empresa varchar(60) NOT NULL,
    	telefone varchar(15),
      	celular varchar(15),
      	cep varchar(10),
      	rua varchar(60),
      	num varchar(6),
      	compl varchar(30),
      	bairro varchar(50),
      	cidade varchar(50),
      	uf varchar(2),
      	datacadastro date,
    	datavalidade date,
      	PRIMARY KEY (empresa)
    );
    
    CREATE TABLE IF NOT EXISTS tborcamento (
      	codigoorcamento int(15) auto_increment,
      	cliente varchar(60),
    	telefone varchar(15),
    	nascto date,
    	tipoDocto varchar(4),
      	cpf varchar(15),
    	rg varchar (15),
      	rua varchar(60),
      	num varchar(6),
      	bairro varchar(50),
      	cidade varchar(50),
      	uf varchar(2),
    	cep varchar(10),
      	email varchar(60),
    	dataorcamento date,
    	aparelho varchar(30),
    	marca varchar(20),
    	modelo varchar(20),
    	defeito text(300),
    	servicoexecutado text(300),
    	valorpecas double,
    	valormaoobra double,
    	valortotal double,
    	estaaprovado varchar(3),
    	dataaprovacao date,
    	pagou varchar(3),
    	valorrecebido double,
    	valorareceber double,
    	entregou varchar(3),
    	dataentrega date,
    	observacao text(300),
    	codigocliente int(15),
    	PRIMARY KEY (codigoorcamento),
    	FOREIGN KEY(codigocliente) REFERENCES tbcliente(codigocliente)
    );
    
    
    
    

     

    quarta-feira, 19 de outubro de 2011 23:31
  • Que número você digitou quando deu o erro?
    quarta-feira, 19 de outubro de 2011 23:46
  • fiz testes digitando o numeros

    1

    2

    3

    1,99

     

    quarta-feira, 19 de outubro de 2011 23:52
  • Vitor

    se quiser testar o programa..

     

    segue o codigo fonte completo

    o banco de dados é mysql

    senha do banco = 2525

     

    http://www.crocko.com/5E02BFBE8712478B97DCEF0FDE1F8264/Assistencia Tecnica.rar

     

    quarta-feira, 19 de outubro de 2011 23:59
  • Nenhum desses é double.

    Digita 1.99 e testa.

     

    quinta-feira, 20 de outubro de 2011 00:11
  • Vitor,

     

    adequei meu banco de dados para tipo Decimal. e converti para decimal.

     agora apresenta esse erro:

    Incorrect decimal value: '1,99' for column 'valorpecas' at row 1

     

    creio eu que agora deva ser erro no tipo que estou tentando inserir no banco de dados. preciso tirar os "" creio eu que seja isso. ,

     

       string incluiSql = "insert into tborcamento(cliente, telefone, nascto, tipoDocto, cpf, rg, rua, num, bairro, cidade, uf, cep, email, dataorcamento, aparelho, marca, modelo, defeito, servicoexecutado, valorpecas, valormaoobra, valortotal, estaaprovado, dataaprovacao, pagou, valorrecebido, valorareceber, entregou, dataentrega, observacao) values (" +
                        "\'" + txtNomeCliente.Text + "\', " +
                        "\'" + lblFoneCliente.Text + "\', " +
                        "str_to_date(\'" + mskNasctoCliente.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + cbxTipoDocto.Text + "\', " +
                        "\'" + txtNumTipoDocto.Text + "\', " +
                        "\'" + txtRgCliente.Text + "\', " +
                        "\'" + lblEnderecoCliente.Text + "\', " +
                        "\'" + lblNumResCliente.Text + "\', " +
                        "\'" + lblBairroCliente.Text + "\', " +
                        "\'" + lblCidadeCliente.Text + "\', " +
                        "\'" + lblUfCliente.Text + "\', " +
                        "\'" + mskCepCliente.Text + "\', " +
                        "\'" + txtEmailCliente.Text + "\', " +
                        "str_to_date(\'" + lblDtOrcamento.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + txtAparelho.Text + "\', " +
                        "\'" + txtMarca.Text + "\', " +
                        "\'" + txtModelo.Text + "\', " +
                        "\'" + rtbDefeito.Text + "\', " +
                        "\'" + rtbServicoExecutado.Text + "\', " +
                        "\'" + decimal.Parse(txtTotalPecas.Text).ToString() + "\', " +
                        "\'" + decimal.Parse(txtTotalMaoObra.Text).ToString() + "\', " +
                        "\'" + decimal.Parse(lblTotalOrcamento.Text).ToString() + "\', " +
                        "\'" + cbxAprovacao.Text + "\', " +
                        "str_to_date(\'" + mskDataAprovacao.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + cbxPagto.Text + "\', " +
                        "\'" + decimal.Parse(txtValorPagoCliente.Text).ToString() + "\', " +
                        "\'" + decimal.Parse(lblAreceber.Text).ToString() + "\', " +
                        "\'" + cbxEntrega.Text + "\', " +
                        "str_to_date(\'" + mskDtEntrega.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + rtbObsOrcamento.Text + "\')";
                        MySqlConnection dbConexao15 = new MySqlConnection(Banco);
                        dbConexao15.Open();
                        MySqlCommand cmdIncluir = new MySqlCommand(incluiSql, dbConexao15);
                        cmdIncluir.ExecuteNonQuery();
                        MessageBox.Show("Inclusão efetuada com sucesso!", "Mensagem do Sistema");
                        limpaCampos();
                    }

     

     

    quinta-feira, 20 de outubro de 2011 12:26
  • Decimal é separado por ponto.
    quinta-feira, 20 de outubro de 2011 15:00
  • Vitor

    acredito que seja outro problema,, para tirar a duvida em questao de pontos, modifiquei tudo para inteiro.. e mesmo assim aponta o mesmo erro na mesma linha

     

    erro = sequencia de entrada nao estava em um formato incorreto

    linha que aponta o erro = valorPcs =

    Convert.ToInt32(txtTotalPecas.Text);

    RODEI PELO EXECUTAVEL GERADO NA PASTA DEBUG.. ELE APONTA O MESMO ERRO E DIZ SE TRATAR DE UM ERRO NAO TRATADO, PERGUNTA SE QUER CONTINUAR E SE CLICAR EM SIM O PROGRAMA VOLTA A FUNCIONAR.. ESTA GRAVANDO CERTO NO BANCO DE DADOS.

     

     

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using MySql.Data.MySqlClient;
    
    
    namespace GerTec
    {
        public partial class frmOrcamentos : Form
        {
            MySqlConnection dbConexao;
            MySqlDataAdapter dbAdapter;
       //     MySqlDataReader retconsulta;
      //      MySqlCommand cmdConsultar;
            public DataSet dsBanco;
            public string Banco = "Persist Security Info=False;server=localhost;database=bdgertec;uid=root;server=localhost;database=bdgertec;uid=root;pwd=2525";
            public int linhaClick;
    
    
    
            int valorPcs;
            int valorMo;
            int totalOrcamento;
            int valorRecebido;
            int totalAreceber;
    
            
            public frmOrcamentos()
            {
                InitializeComponent();
    
                verificarBanco();
                pnlDadosClientes.Visible = false;
                string Date = DateTime.Now.ToShortDateString();
                lblDtOrcamento.Text = Date;
           //     txtValorPagoCliente.Text = "0";
    
              
       //         valorMo = 0;
       //         valorPcs = 0;
    
                
            }
    
            // função para conexão ao banco de dados
            private void verificarBanco()
            {
                dsBanco = new DataSet();
                dbConexao = new MySqlConnection(Banco);
                try
                {
                    dbConexao.Open();
                }
                catch
                {
                    MessageBox.Show("Problemas com o Banco de Dados");
                }
                if (dbConexao.State == ConnectionState.Open)
                {
                    atualizaGrid();
                }
            }
            public void limpaCampos()
            {
                txtNomeCliente.Text = "";
                lblFoneCliente.Text = "";
                lblEnderecoCliente.Text = "";
                lblNumResCliente.Text = "";
                lblBairroCliente.Text = "";
                lblCidadeCliente.Text = "";
                lblUfCliente.Text = "";
                lblDtOrcamento.Text = "";
                lblNumOrcamento.Text = "";
                txtAparelho.Text = "";
                txtMarca.Text = "";
                txtModelo.Text = "";
                rtbDefeito.Text = "";
                rtbServicoExecutado.Text = "";
                txtTotalPecas.Text = "";
                txtTotalMaoObra.Text = "";
                lblTotalOrcamento.Text = "";
                cbxAprovacao.Text = "";
                mskDataAprovacao.Text = "";
                cbxPagto.Text = "";
                txtValorPagoCliente.Text = "";
                lblAreceber.Text = "";
                cbxEntrega.Text = "";
                rtbObsOrcamento.Text = "";
            }
    
            private void atualizaGrid()
            {
                string sql = "Select *from tbcliente";
                dbAdapter = new MySqlDataAdapter(sql, dbConexao);
                dsBanco = new DataSet();
                dbAdapter.Fill(dsBanco, "tbcliente");
                dtgOrcamento.DataSource = dsBanco;
                dtgOrcamento.DataMember = "tbcliente";
            }
            
            private void btnSair_Click(object sender, EventArgs e)
            {
                this.Close();
            }
    
            private void frmOrcamentos_Load(object sender, EventArgs e)
            {
    
        
    
            }
    
            private void dtgOrcamento_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                btnGrava.Enabled = true;
                linhaClick = int.Parse(e.RowIndex.ToString());
                if (linhaClick != -1)
                {
    
                  
                    txtNomeCliente.Text = dtgOrcamento[1, linhaClick].Value.ToString();
                    lblFoneCliente.Text =dtgOrcamento[2, linhaClick].Value.ToString();
                    mskNasctoCliente.Text = dtgOrcamento[3, linhaClick].Value.ToString();
                    cbxTipoDocto.Text = dtgOrcamento[4, linhaClick].Value.ToString();
                    txtNumTipoDocto.Text = dtgOrcamento[5, linhaClick].Value.ToString();
                    txtRgCliente.Text = dtgOrcamento[6, linhaClick].Value.ToString();
                    lblEnderecoCliente.Text = dtgOrcamento[7, linhaClick].Value.ToString();
                    lblNumResCliente.Text = dtgOrcamento[8, linhaClick].Value.ToString();
                    lblBairroCliente.Text = dtgOrcamento[9, linhaClick].Value.ToString();
                    lblCidadeCliente.Text = dtgOrcamento[10, linhaClick].Value.ToString();
                    lblUfCliente.Text = dtgOrcamento[11, linhaClick].Value.ToString();
                    mskCepCliente.Text = dtgOrcamento[12, linhaClick].Value.ToString();
                    txtEmailCliente.Text = dtgOrcamento[13, linhaClick].Value.ToString();
                    rtbObsCliente.Text = dtgOrcamento[14, linhaClick].Value.ToString();
                    
                    
                 
    
                }
            }
    
            private void btnGrava_Click(object sender, EventArgs e)
            {
    
                    
                if ((txtNomeCliente.Text == string.Empty))
                {
    
                    MessageBox.Show("Obrigatório o preenchimento dos campos", "Mensagem de Alerta");
                    limpaCampos();
                    txtNomeCliente.Focus();
    
    
                }
                    else
                    {
    
                       
                        MySqlConnection cn2 = new MySqlConnection(Banco);
                        cn2.Open();
    
    
                        string incluiSql = "insert into tborcamento(cliente, telefone, nascto, tipoDocto, cpf, rg, rua, num, bairro, cidade, uf, cep, email, dataorcamento, aparelho, marca, modelo, defeito, servicoexecutado, valorpecas, valormaoobra, valortotal, estaaprovado, dataaprovacao, pagou, valorrecebido, valorareceber, entregou, dataentrega, observacao) values (" +
                        "\'" + txtNomeCliente.Text + "\', " +
                        "\'" + lblFoneCliente.Text + "\', " +
                        "str_to_date(\'" + mskNasctoCliente.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + cbxTipoDocto.Text + "\', " +
                        "\'" + txtNumTipoDocto.Text + "\', " +
                        "\'" + txtRgCliente.Text + "\', " +
                        "\'" + lblEnderecoCliente.Text + "\', " +
                        "\'" + lblNumResCliente.Text + "\', " +
                        "\'" + lblBairroCliente.Text + "\', " +
                        "\'" + lblCidadeCliente.Text + "\', " +
                        "\'" + lblUfCliente.Text + "\', " +
                        "\'" + mskCepCliente.Text + "\', " +
                        "\'" + txtEmailCliente.Text + "\', " +
                        "str_to_date(\'" + lblDtOrcamento.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + txtAparelho.Text + "\', " +
                        "\'" + txtMarca.Text + "\', " +
                        "\'" + txtModelo.Text + "\', " +
                        "\'" + rtbDefeito.Text + "\', " +
                        "\'" + rtbServicoExecutado.Text + "\', " +
                        "\'" + int.Parse(txtTotalPecas.Text).ToString() + "\', " +
                        "\'" + int.Parse(txtTotalMaoObra.Text).ToString() + "\', " +
                        "\'" + int.Parse(lblTotalOrcamento.Text).ToString() + "\', " +
                        "\'" + cbxAprovacao.Text + "\', " +
                        "str_to_date(\'" + mskDataAprovacao.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + cbxPagto.Text + "\', " +
                        "\'" + int.Parse(txtValorPagoCliente.Text).ToString() + "\', " +
                        "\'" + int.Parse(lblAreceber.Text).ToString() + "\', " +
                        "\'" + cbxEntrega.Text + "\', " +
                        "str_to_date(\'" + mskDtEntrega.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + rtbObsOrcamento.Text + "\')";
                        MySqlConnection dbConexao15 = new MySqlConnection(Banco);
                        dbConexao15.Open();
                        MySqlCommand cmdIncluir = new MySqlCommand(incluiSql, dbConexao15);
                        cmdIncluir.ExecuteNonQuery();
                        MessageBox.Show("Inclusão efetuada com sucesso!", "Mensagem do Sistema");
                        limpaCampos();
                    }
                    
    
           //         travaJanelas();
                    atualizaGrid();
                   
                    btnCancelar.Enabled = false;
                   
          //          txtCidadeCliente.Focus();
    
                }
    
            private void btnLocalizarCliente_Click(object sender, EventArgs e)
            {
                if (btnLocalizarCliente.Text == "Procurar")
                {
                    btnLocalizarCliente.Text = "Executar";
                    txtNomeCliente.Enabled = true;
                    txtNomeCliente.Focus();
                }
                else
                {
                    btnLocalizarCliente.Text = "Procurar";
                    txtNomeCliente.Enabled = false;
                    if (txtNomeCliente.Text != "")
                    {
                        string sqlSelect = "Select *from tbcliente where cliente like '%" + txtNomeCliente.Text + "%'";
                        MySqlCommand cmdPesquisar = new MySqlCommand(sqlSelect, dbConexao);
                        cmdPesquisar.ExecuteNonQuery();
                        dbAdapter = new MySqlDataAdapter(sqlSelect, dbConexao);
                        dsBanco = new DataSet();
                        dbAdapter.Fill(dsBanco, "tbcliente");
                        dtgOrcamento.DataSource = dsBanco;
                        dtgOrcamento.DataMember = "tbcliente";
                    }
                    else
                    {
                        atualizaGrid();
                    }
                    txtNomeCliente.Clear();
                }
            }
    
            private void txtTotalPecas_TextChanged(object sender, EventArgs e)
            {
                valorPcs = Convert.ToInt32(txtTotalPecas.Text);
             //   valorPcs = Convert.ToDecimal(txtTotalPecas.Text);
                totalOrcamento = valorPcs + valorMo;
                lblTotalOrcamento.Text = totalOrcamento.ToString();
                lblAreceber.Text = totalOrcamento.ToString();
             //   lblTotalOrcamento.Text = (valorPcs + valorMo).ToString();
            }
    
            private void txtTotalMaoObra_TextChanged(object sender, EventArgs e)
            {
                valorMo = Convert.ToInt32(txtTotalMaoObra.Text);
         //       valorMo = Convert.ToDecimal(txtTotalMaoObra.Text);
               totalOrcamento = valorPcs + valorMo;
               lblTotalOrcamento.Text = totalOrcamento.ToString();
             //   lblTotalOrcamento.Text = (valorPcs + valorMo).ToString();
               lblAreceber.Text = totalOrcamento.ToString();
            }
    
            private void txtValorPagoCliente_TextChanged(object sender, EventArgs e)
            {
                valorRecebido = Convert.ToInt32(txtValorPagoCliente.Text);
             //   lblAreceber.Text = (totalOrcamento - totalAreceber).ToString();
               lblAreceber.Text = ((valorPcs + valorMo) - (valorRecebido)).ToString();
            }
    
        
    
    
            }
        }
    
    
    

     

     

     

     

    quinta-feira, 20 de outubro de 2011 22:08
  • Pode parecer estúpido, mas você está iniciando essa variável ou campo com algum valor?? Ela recebe algum valor durante a execução do programa??
    sexta-feira, 21 de outubro de 2011 12:38
  • Debugando, que valor aparece na propriedade Text do TextBox quando ocorre o erro?
    wWw . Guilherme Ferrera . CoM
    sexta-feira, 21 de outubro de 2011 14:10
  • amigos, não sei o que ocorre, sou iniciante.. eu estou quase acreditando que o problema esta porque estou usando o evento

    textchanged nos textbox para fazer a soma automatica.. seta isto..

     

    olha o codigo ..

     

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Windows.Forms;
    using MySql.Data.MySqlClient;
    
    
    namespace GerTec
    {
        public partial class frmOrcamentos : Form
        {
            MySqlConnection dbConexao;
            MySqlDataAdapter dbAdapter;
       //     MySqlDataReader retconsulta;
      //      MySqlCommand cmdConsultar;
            public DataSet dsBanco;
            public string Banco = "Persist Security Info=False;server=localhost;database=bdgertec;uid=root;server=localhost;database=bdgertec;uid=root;pwd=2525";
            public int linhaClick;
    
    
    
            int valorPcs;
            int valorMo;
            int totalOrcamento;
            int valorRecebido;
            int totalAreceber;
    
            
            public frmOrcamentos()
            {
                InitializeComponent();
    
                verificarBanco();
                pnlDadosClientes.Visible = false;
                string Date = DateTime.Now.ToShortDateString();
                lblDtOrcamento.Text = Date;
                txtValorPagoCliente.Text = "0";
                txtTotalMaoObra.Text = "0";
                txtTotalPecas.Text = "0";
                lblAreceber.Text = "0";
              
       //         valorMo = 0;
       //         valorPcs = 0;
    
                
            }
    
            // função para conexão ao banco de dados
            private void verificarBanco()
            {
                dsBanco = new DataSet();
                dbConexao = new MySqlConnection(Banco);
                try
                {
                    dbConexao.Open();
                }
                catch
                {
                    MessageBox.Show("Problemas com o Banco de Dados");
                }
                if (dbConexao.State == ConnectionState.Open)
                {
                    atualizaGrid();
                }
            }
            public void limpaCampos()
            {
                txtNomeCliente.Text = "";
                lblFoneCliente.Text = "";
                lblEnderecoCliente.Text = "";
                lblNumResCliente.Text = "";
                lblBairroCliente.Text = "";
                lblCidadeCliente.Text = "";
                lblUfCliente.Text = "";
                lblDtOrcamento.Text = "";
                lblNumOrcamento.Text = "";
                txtAparelho.Text = "";
                txtMarca.Text = "";
                txtModelo.Text = "";
                rtbDefeito.Text = "";
                rtbServicoExecutado.Text = "";
                txtTotalPecas.Text = "";
                txtTotalMaoObra.Text = "";
                lblTotalOrcamento.Text = "";
                cbxAprovacao.Text = "";
                mskDataAprovacao.Text = "";
                cbxPagto.Text = "";
                txtValorPagoCliente.Text = "";
                lblAreceber.Text = "";
                cbxEntrega.Text = "";
                rtbObsOrcamento.Text = "";
            }
    
            private void atualizaGrid()
            {
                string sql = "Select *from tbcliente";
                dbAdapter = new MySqlDataAdapter(sql, dbConexao);
                dsBanco = new DataSet();
                dbAdapter.Fill(dsBanco, "tbcliente");
                dtgOrcamento.DataSource = dsBanco;
                dtgOrcamento.DataMember = "tbcliente";
            }
            
            private void btnSair_Click(object sender, EventArgs e)
            {
                this.Close();
            }
    
            private void frmOrcamentos_Load(object sender, EventArgs e)
            {
    
        
    
            }
    
            private void dtgOrcamento_CellClick(object sender, DataGridViewCellEventArgs e)
            {
                btnGrava.Enabled = true;
                linhaClick = int.Parse(e.RowIndex.ToString());
                if (linhaClick != -1)
                {
    
                  
                    txtNomeCliente.Text = dtgOrcamento[1, linhaClick].Value.ToString();
                    lblFoneCliente.Text =dtgOrcamento[2, linhaClick].Value.ToString();
                    mskNasctoCliente.Text = dtgOrcamento[3, linhaClick].Value.ToString();
                    cbxTipoDocto.Text = dtgOrcamento[4, linhaClick].Value.ToString();
                    txtNumTipoDocto.Text = dtgOrcamento[5, linhaClick].Value.ToString();
                    txtRgCliente.Text = dtgOrcamento[6, linhaClick].Value.ToString();
                    lblEnderecoCliente.Text = dtgOrcamento[7, linhaClick].Value.ToString();
                    lblNumResCliente.Text = dtgOrcamento[8, linhaClick].Value.ToString();
                    lblBairroCliente.Text = dtgOrcamento[9, linhaClick].Value.ToString();
                    lblCidadeCliente.Text = dtgOrcamento[10, linhaClick].Value.ToString();
                    lblUfCliente.Text = dtgOrcamento[11, linhaClick].Value.ToString();
                    mskCepCliente.Text = dtgOrcamento[12, linhaClick].Value.ToString();
                    txtEmailCliente.Text = dtgOrcamento[13, linhaClick].Value.ToString();
                    rtbObsCliente.Text = dtgOrcamento[14, linhaClick].Value.ToString();
                    
                    
                 
    
                }
            }
    
            private void btnGrava_Click(object sender, EventArgs e)
            {
    
                    
                if ((txtNomeCliente.Text == string.Empty))
                {
    
                    MessageBox.Show("Obrigatório o preenchimento dos campos", "Mensagem de Alerta");
                    limpaCampos();
                    txtNomeCliente.Focus();
    
    
                }
                    else
                    {
    
                       
                        MySqlConnection cn2 = new MySqlConnection(Banco);
                        cn2.Open();
    
    
                        string incluiSql = "insert into tborcamento(cliente, telefone, nascto, tipoDocto, cpf, rg, rua, num, bairro, cidade, uf, cep, email, dataorcamento, aparelho, marca, modelo, defeito, servicoexecutado, valorpecas, valormaoobra, valortotal, estaaprovado, dataaprovacao, pagou, valorrecebido, valorareceber, entregou, dataentrega, observacao) values (" +
                        "\'" + txtNomeCliente.Text + "\', " +
                        "\'" + lblFoneCliente.Text + "\', " +
                        "str_to_date(\'" + mskNasctoCliente.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + cbxTipoDocto.Text + "\', " +
                        "\'" + txtNumTipoDocto.Text + "\', " +
                        "\'" + txtRgCliente.Text + "\', " +
                        "\'" + lblEnderecoCliente.Text + "\', " +
                        "\'" + lblNumResCliente.Text + "\', " +
                        "\'" + lblBairroCliente.Text + "\', " +
                        "\'" + lblCidadeCliente.Text + "\', " +
                        "\'" + lblUfCliente.Text + "\', " +
                        "\'" + mskCepCliente.Text + "\', " +
                        "\'" + txtEmailCliente.Text + "\', " +
                        "str_to_date(\'" + lblDtOrcamento.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + txtAparelho.Text + "\', " +
                        "\'" + txtMarca.Text + "\', " +
                        "\'" + txtModelo.Text + "\', " +
                        "\'" + rtbDefeito.Text + "\', " +
                        "\'" + rtbServicoExecutado.Text + "\', " +
                        "\'" + int.Parse(txtTotalPecas.Text).ToString() + "\', " +
                        "\'" + int.Parse(txtTotalMaoObra.Text).ToString() + "\', " +
                        "\'" + int.Parse(lblTotalOrcamento.Text).ToString() + "\', " +
                        "\'" + cbxAprovacao.Text + "\', " +
                        "str_to_date(\'" + mskDataAprovacao.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + cbxPagto.Text + "\', " +
                        "\'" + int.Parse(txtValorPagoCliente.Text).ToString() + "\', " +
                        "\'" + int.Parse(lblAreceber.Text).ToString() + "\', " +
                        "\'" + cbxEntrega.Text + "\', " +
                        "str_to_date(\'" + mskDtEntrega.Text.Trim() + "\', '%d/%m/%Y' ), " +
                        "\'" + rtbObsOrcamento.Text + "\')";
                        MySqlConnection dbConexao15 = new MySqlConnection(Banco);
                        dbConexao15.Open();
                        MySqlCommand cmdIncluir = new MySqlCommand(incluiSql, dbConexao15);
                        cmdIncluir.ExecuteNonQuery();
                        MessageBox.Show("Inclusão efetuada com sucesso!", "Mensagem do Sistema");
                        limpaCampos();
                    }
                    
    
           //         travaJanelas();
                    atualizaGrid();
                   
                    btnCancelar.Enabled = false;
                   
          //          txtCidadeCliente.Focus();
    
                }
    
            private void btnLocalizarCliente_Click(object sender, EventArgs e)
            {
                if (btnLocalizarCliente.Text == "Procurar")
                {
                    btnLocalizarCliente.Text = "Executar";
                    txtNomeCliente.Enabled = true;
                    txtNomeCliente.Focus();
                }
                else
                {
                    btnLocalizarCliente.Text = "Procurar";
                    txtNomeCliente.Enabled = false;
                    if (txtNomeCliente.Text != "")
                    {
                        string sqlSelect = "Select *from tbcliente where cliente like '%" + txtNomeCliente.Text + "%'";
                        MySqlCommand cmdPesquisar = new MySqlCommand(sqlSelect, dbConexao);
                        cmdPesquisar.ExecuteNonQuery();
                        dbAdapter = new MySqlDataAdapter(sqlSelect, dbConexao);
                        dsBanco = new DataSet();
                        dbAdapter.Fill(dsBanco, "tbcliente");
                        dtgOrcamento.DataSource = dsBanco;
                        dtgOrcamento.DataMember = "tbcliente";
                    }
                    else
                    {
                        atualizaGrid();
                    }
                    txtNomeCliente.Clear();
                }
            }
    
            private void txtTotalPecas_TextChanged(object sender, EventArgs e)
            {
                valorPcs = Convert.ToInt32(txtTotalPecas.Text);
             //   valorPcs = Convert.ToDecimal(txtTotalPecas.Text);
                totalOrcamento = valorPcs + valorMo;
                lblTotalOrcamento.Text = totalOrcamento.ToString();
                lblAreceber.Text = totalOrcamento.ToString();
             //   lblTotalOrcamento.Text = (valorPcs + valorMo).ToString();
            }
    
            private void txtTotalMaoObra_TextChanged(object sender, EventArgs e)
            {
                valorMo = Convert.ToInt32(txtTotalMaoObra.Text);
         //       valorMo = Convert.ToDecimal(txtTotalMaoObra.Text);
               totalOrcamento = valorPcs + valorMo;
               lblTotalOrcamento.Text = totalOrcamento.ToString();
             //   lblTotalOrcamento.Text = (valorPcs + valorMo).ToString();
               lblAreceber.Text = totalOrcamento.ToString();
            }
    
            private void txtValorPagoCliente_TextChanged(object sender, EventArgs e)
            {
                valorRecebido = Convert.ToInt32(txtValorPagoCliente.Text);
             //   lblAreceber.Text = (totalOrcamento - totalAreceber).ToString();
               lblAreceber.Text = ((valorPcs + valorMo) - (valorRecebido)).ToString();
            }
    
        
    
    
            }
        }
    
    
    

     

    sexta-feira, 21 de outubro de 2011 19:39
  • Converter para double/float/decimal no textChange assim não rola.E... uma quantidade total de peças não deveria ser inteira?

    Acho melhor deixar digitar o decimal direito,com suas casas decimais separadas por ponto ou vírgula do que fazer isso automaticamente.

    sexta-feira, 21 de outubro de 2011 19:56
  • vitor

    é tudo moeda..

     

    valor total mao obra

    valor total peças

    valor total orcamento

    valor tota a receber

    valor total recebido

     

    .. não entendi como fazer o que voce sugeriu, pois segui o teu exemplo pra chegar ate aqui.

     

    olha a tela do programa , talves te ajude a entender o que quero

     

     

     

    sexta-feira, 21 de outubro de 2011 20:58
  • Ajudou muuuito.

    Não sabia ainda que estava a tratar de dinheiro... no caso serão duas casas após a vírgula,né?

    Se for,pode fazer assim:

    int c = textBox1.Text.Length;
                switch (c) {
                    case 3:
                       // textBox1.Text.Substring(0, 1) + '.' + textBox1.Text.Substring(1, 2);
                        break;
                    case 4:
                        // textBox1.Text.Substring(0, 2) + '.' + textBox1.Text.Substring(2, 2);
                        break;
                    case 5:
                         // textBox1.Text.Substring(0, 3) + '.' + textBox1.Text.Substring(3, 2);
                        break;
                    case 6:
                        //textBox1.Text.Substring(0, 4) + '.' + textBox1.Text.Substring(4,2);
                        break;
                }
    

    É só adicionando case-breaks para strings mais longas.

    E então converte e usa as strings comentadas.

    sexta-feira, 21 de outubro de 2011 21:43
  • e deixo no banco de dados e no codigo tudo como inteiro mesmo ou mudo para decimal ou double ?
    sexta-feira, 21 de outubro de 2011 21:48
  • Vitor.. voce me ajudou no sentido de colocar a formatação da moeda.. mas acredito que o erro apos gravar no banco de dados ainda vai continuar...

     

    voce nao quer baixar o codigo fonte ai na tua maquina e testar, pra entender do que estou falando ?

    o banco é o mysql .. e é so tirar no codigo a senha que estou usando pra conectar o Banco que é 2525

     

    o codigo esta aqui

    https://docs.google.com/viewer?a=v&pid=explorer&chrome=true&srcid=0B6B2pW9mbu0fOGEyN2ZlYWUtMDBiYi00OWYxLWI0NTMtZjJhNDU0ZTJhNGM3&hl=pt_BR

     

    sexta-feira, 21 de outubro de 2011 21:51
  • Acho que é porque quando você efetua um registro (ou não),o texto do textBox é alterado... para nada.E,quando ele é alterado,tenta converter para Int32.Não sei se usando o método Clear() no textbox daria nesse erro.

    Faça um tratamento de exceção no evento TextChanged dos textBoxes.Verifique se o texto deles é nulo,assim,por ex.:

    if(txtTotalMaoObra.Text.Trim().Length != 0) {
        // O código do txtTotalMaoObra
    }
    

    E,se não me engano,as datas no MySQL são nesse formato : '00-00-0000'.

    • Editado Vitor dos Santos sexta-feira, 21 de outubro de 2011 23:29
    • Marcado como Resposta Grizante terça-feira, 25 de outubro de 2011 11:13
    sexta-feira, 21 de outubro de 2011 23:29
  • vitor

    vou modificar  pra ver

     

    mas a data no mysql é no formato YYYY/MMDD ou seja 0000-00-00

     

    qualquer coisa posto aqui novamente. o resultado..

     


    • Editado Grizante sexta-feira, 21 de outubro de 2011 23:53
    sexta-feira, 21 de outubro de 2011 23:53