none
A cadeia de caracteres de entrada não estava em um formato correto. RRS feed

  • Pergunta

  • Ola galera, estou tentando criar um projeto WPF  com cadastro de clientes e ordem de serviço bem simples, onde o cadastro de clientes esta tudo certo, a ordem eu crio de boa mas não consigo editar, na hora de preencher os Textbox da erro (A cadeia de caracteres de entrada não estava em um formato correto.) gostaria muito de uma ajuda ja que sou iniciante em C#,

    vou tentar explicar, tem um form com 3 funções, criar, editar e listar(com um txt_carregar.text + Btn_carregar) a dar doble click no DataGrid preenche o txt_carregar com o nome do cliente da ordem de serviço e o Btn_Carregar preenche os text box do formulário para editar(é o mesmo formulário de criar)  quando clico  para  carregar o form da o erro,

    meu cogigo esta assim:

    CLASS CobtroleOS

                           

    class ControleOS
        {
            private DALConexao conexao;
            public ControleOS(DALConexao cx)
            {
                this.conexao = cx;
            }

    /// <summary>
            /// Carregando as informações da tabela para a classe de OS.
            /// </summary>
            /// <param name="ID">I.</param>
            /// 
            public static ModeloOrdemServico Carregar(int ID_OS)
            {
                System.Data.DataTable tabela = new DataTable("OrdemDeServico");
                ModeloOrdemServico OSBase = new ModeloOrdemServico();
                DALConexao conexao = new DALConexao(DadosDaConexao.StringDaConexao);
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conexao.ObjetConexao;
                //SqlDataAdapter da = new SqlDataAdapter("Select * from OrdemDeServico Where ID_OS = @id_os", conexao.ObjetConexao);

                SqlDataAdapter da = new SqlDataAdapter("select os.IdCliente,  os.Situacao, os.Modelo, os.Garantia,  os.NumeroDeSerie, os.DefeitoRelatado,os.DefeitoConstatado, " +
                    " os.NumeroOS, os.DataEntradaServico, os.Observacao, os.Valor, os.Descricao, p.Nome  from Pessoa p inner join ordemdeservico os on p.ID_Cli = os.ID_OS", conexao.StringConexao);
                da.Fill(tabela);

                //cmd.CommandText = "Select * from OrdemDeServico Where ID_OS = @id_os";
                //cmd.Parameters.AddWithValue("@id_os", ID_OS.ToString());

                try
                {
                    conexao.Conectar();
                    cmd.ExecuteNonQuery();
                    conexao.Desconectar();

                    OSBase = PreencherOS(tabela);
                }
                catch (Exception)
                {
                    //ControllerArquivoLog.GeraraLog(ex);
                }


                return OSBase;
            }
            private static ModeloOrdemServico PreencherOS(DataTable tabela)
            {
                List<string> OSBaseLista = new List<string>();
                ModeloOrdemServico OSBase = new ModeloOrdemServico();


                try
                {
                    foreach (DataRow r in tabela.Rows)
                    {
                        foreach (DataColumn c in tabela.Columns)
                        {
                            OSBaseLista.Add(r[c].ToString());
                        }
                    }

                    OSBase.ID_OS = Convert.ToInt32(OSBaseLista[0]);
                    OSBase.Situacao = OSBaseLista[1];
                    OSBase.Garantia = OSBaseLista[2];
                    OSBase.DefeitoRelatado = OSBaseLista[3];
                    OSBase.NumeroSerie = OSBaseLista[4];
                    OSBase.Modelo = OSBaseLista[5];
                    OSBase.NumeroOS = OSBaseLista[6];
                    OSBase.DefeitoConstatado = OSBaseLista[7];
                    OSBase.DataEntradaServico = OSBaseLista[8];
                    OSBase.Observacao = OSBaseLista[9];
                    OSBase.Valor = Convert.ToDecimal(OSBaseLista[10]);
                    OSBase.Descricao = OSBaseLista[11];

                    OSBase.IDCliente = Convert.ToInt32(OSBaseLista[12]);





                }
                catch (Exception)
                {

                }
                return OSBase;
            }
            /// <summary>
            /// Retorna um DataTable com todas as Ordens de serviço.
            /// </summary>
            /// <returns>The lista.</returns>

            public static DataTable CarregarLista()
            {
                DataTable tabela = new DataTable("ordemdeservico");
                SqlCommand cmd = new SqlCommand();

                try
                {
                    DALConexao conexao = new DALConexao(DadosDaConexao.StringDaConexao);

                    SqlDataAdapter da = new SqlDataAdapter("select os.NumeroOS, p.Nome, os.Situacao, os.Garantia, os.DefeitoRelatado, os.NumeroDeSerie, os.Modelo,  os.DefeitoConstatado, os.DataEntradaServico,   " +
                                                          " os.Observacao, os.Valor, os.Descricao from Pessoa p inner join ordemdeservico os on p.ID_Cli = os.ID_OS", conexao.StringConexao);
                    da.Fill(tabela);
                    //cmd.ExecuteReader();
                }
                catch (Exception )
                {

                }
                return tabela;
            }
            /// <summary>
    /// Retorna um DataTable com todos os ids das Ordens de serviço.
    /// </summary>
    /// <returns>The lista.</returns>
    public static DataTable CarregarListaDeIds()
            {
                DataTable tabela = new DataTable("ordemdeservico");
                SqlCommand cmd = new SqlCommand();

                try
                {
                    DALConexao conexao = new DALConexao(DadosDaConexao.StringDaConexao);
                    cmd.Connection = conexao.ObjetConexao;

                    SqlDataAdapter da = new SqlDataAdapter("Select  P.Nome from Pessoa p inner join ordemdeservico os on p.ID_Cli = os.ID_OS", conexao.StringConexao);
                    da.Fill(tabela);
                }
                catch (Exception)
                {

                }
                return tabela;
            }
            public bool Verificar(string _Identificador)
            {
                return File.Exists(string.Format("OS/{0}.os", _Identificador));
            }
        }
    }

     //------------------FORM ------------------------------------------------------

                

    public partial class Frm_NovaOS : Form
        {
            public Frm_NovaOS()
            {

                InitializeComponent();
            }                                   

           //.....  public void AlteraBotoes(int op)  +  private void LimparCampos()   ....//

     private void Frm_NovaOS_Load(object sender, EventArgs e)
            {
                Dt_DataEntrada.Text = DateTime.Now.ToString();
                txt_Data.Text = DateTime.Now.ToString();


                this.AlteraBotoes(1);
                AualizarGridSemFiltro();
                AtualizarListaDeOS();

                //Preenchendo o ComboBox com o nome de Clientes
                TabelaDeClientes = ControleCliente.CarregarListaDeNomes();

                if (TabelaDeClientes.Rows.Count != 0)
                {
                    foreach (System.Data.DataRow r in TabelaDeClientes.Rows)
                    {
                        foreach (System.Data.DataColumn c in TabelaDeClientes.Columns)
                        {
                            Txt_Clientes.Items.Add(r[c].ToString());
                        }
                    }
                }
            }

            private void Btn_NovaOrdem_Click(object sender, EventArgs e)
            {

                Random R = new Random();
                Txt_NumeroOS.Text = R.Next(99999).ToString();
                this.LimparCampos();
                this.AlteraBotoes(2);
            }

            private void BtnAtualizaList_Click(object sender, EventArgs e)
            {
                Txt_pesquisar.Clear();
                AualizarGridSemFiltro();
                this.Data_Os.Update();
                this.Data_Os.Refresh();
            }

            private void Btn_Salvar_Click(object sender, EventArgs e)
            {
                if (ControleCliente.VerificarExistencia(Txt_Clientes.Text))
                {
                    string Retorno = ControleOrdemServico.Criar(PreencherOS());

                    MessageBox.Show(String.Format("{0}", Retorno), "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    if (MessageBox.Show("Deseja imprimir  a ordem de serviço?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        //TODO: Função para gerar uma ordem de serviço em PDF Aqui.
                    }

                    LimparCampos();
                }
                else
                {
                    MessageBox.Show("Selecione um cliente!", "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            private void Btm_Carregar_Click(object sender, EventArgs e)
            {

                this.AlteraBotoes(3);

                if (!String.IsNullOrEmpty(Txt_IDPesquisa.Text))
                {
     Erro Aqui      PreencherCamposDeTexto(Convert.ToInt32(Txt_Clientes.Text)); --> A cadeia de caracteres de entrada não estava em um formato correto.

                }
                else
                {
                    MessageBox.Show("Escolha uma ordem de serviço!", "Informações", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
            }
            private ModeloOrdemServico PreencherOS()
            {
                ModeloOrdemServico OSBase = new ModeloOrdemServico();
                //OSBase.ID_OS = IDChamado;
                OSBase.IDCliente = ControleCliente.VerificarID(Txt_Clientes.Text);
                OSBase.DataEntradaServico = Dt_DataEntrada.Text;
                OSBase.Garantia = txt_Data.Text;
                OSBase.Descricao = Txt_Descricao.Text;
                OSBase.Modelo = Txt_Equipamento.Text;
                OSBase.DefeitoRelatado = Txt_Defeito.Text;
                OSBase.DefeitoConstatado = Txt_Defeito.Text;
                OSBase.NumeroSerie = Txt_Nserie.Text;
                OSBase.Observacao = Txt_Observacoes.Text;
                OSBase.NumeroOS = Txt_NumeroOS.Text;
                OSBase.Situacao = Txt_Situacao.Text;
                OSBase.Valor = Convert.ToDecimal(Txt_ValotOrc.Text);

                return OSBase;
            }
            private void PreencherCamposDeTexto(int id)
            {
                ModeloOrdemServico InformacoesOrdemDeServico = new ModeloOrdemServico();
                InformacoesOrdemDeServico = ControleOrdemServico.Carregar(id);


                Txt_Clientes.Text = InformacoesOrdemDeServico.IDCliente.ToString();
                Txt_Situacao.Text = InformacoesOrdemDeServico.Situacao.ToString();
                txt_Data.Text = InformacoesOrdemDeServico.Garantia.ToString();
                Txt_Defeito.Text = InformacoesOrdemDeServico.DefeitoRelatado.ToString();
                Txt_DefeitoCons.Text = InformacoesOrdemDeServico.DefeitoConstatado.ToString();
                Txt_Descricao.Text = InformacoesOrdemDeServico.Descricao.ToString();
                Txt_Observacoes.Text = InformacoesOrdemDeServico.Observacao.ToString();
                Txt_Nserie.Text = InformacoesOrdemDeServico.NumeroSerie.ToString();
                Txt_NumeroOS.Text = InformacoesOrdemDeServico.NumeroOS.ToString();
                Txt_Equipamento.Text = InformacoesOrdemDeServico.Modelo.ToString();
                Dt_DataEntrada.Text = InformacoesOrdemDeServico.DataEntradaServico.ToString();
                Txt_ValotOrc.Text = Convert.ToString(InformacoesOrdemDeServico.Valor);
                Txt_Descricao.Text = InformacoesOrdemDeServico.Descricao.ToString();

                Txt_Clientes.Text = ControleCliente.VerificarNome(InformacoesOrdemDeServico.IDCliente);

            }
            private void AualizarGridSemFiltro()
            {
                Data_Os.SelectionMode = DataGridViewSelectionMode.FullRowSelect;

                Data_Os.DataSource = ControleOS.CarregarLista();

                Data_Os.Columns[0].HeaderText = " NumeroOS";
                Data_Os.Columns[0].Width = 90;
                Data_Os.Columns[1].HeaderText = " Cliente";
                Data_Os.Columns[1].Width = 120;
                Data_Os.Columns[2].HeaderText = " Situação";
                Data_Os.Columns[2].Width = 100;
                Data_Os.Columns[3].HeaderText = " Garantia";
                Data_Os.Columns[3].Width = 80;
                Data_Os.Columns[4].HeaderText = " Defeito Rel";
                Data_Os.Columns[4].Width = 120;
                Data_Os.Columns[5].HeaderText = " Nº Série";
                Data_Os.Columns[5].Width = 100;
                Data_Os.Columns[6].HeaderText = " Modelo ";
                Data_Os.Columns[6].Width = 100;
                Data_Os.Columns[7].HeaderText = " Defeito Const";
                Data_Os.Columns[7].Width = 140;
                Data_Os.Columns[8].HeaderText = " Entrada";
                Data_Os.Columns[8].Width = 80;
                Data_Os.Columns[9].HeaderText = " Observações";
                Data_Os.Columns[9].Width = 120;
                Data_Os.Columns[10].HeaderText = " Valor";
                Data_Os.Columns[10].Width = 70;
                Data_Os.Columns[11].HeaderText = " Descrição";
                Data_Os.Columns[11].Width = 120;



                //Data_Os.Columns[2].HeaderText = "Numero de Serie";
                //Data_Os.Columns[4].HeaderText = "Data de Entrada";
            }

            private void AtualizarListaDeOS()
            {
                Txt_IDPesquisa.Items.Clear();

                DataTable tabela = new DataTable("ListaDeOrdem");
                tabela = ControleOS.CarregarListaDeIds();


                if (tabela.Rows.Count != 0)
                {
                    foreach (DataRow r in tabela.Rows)
                    {
                        foreach (DataColumn c in tabela.Columns)
                        {
                            Txt_IDPesquisa.Items.Add(r[c].ToString());
                        }
                    }
                    Txt_IDPesquisa.Text = Txt_IDPesquisa.Items[0].ToString();

                }
            }
            private void Txt_Clientes_TextUpdate(object sender, EventArgs e)
            {
                Txt_Clientes.Items.Clear();

                if (TabelaDeClientes.Rows.Count != 0)
                {
                    foreach (DataRow r in TabelaDeClientes.Rows)
                    {
                        foreach (DataColumn c in TabelaDeClientes.Columns)
                        {
                            if (r[c].ToString().Trim().Contains(Txt_Clientes.Text.Trim()))
                            {
                                Txt_Clientes.Items.Add(r[c].ToString());
                            }
                        }
                    }

                    //Move o cursor para o Fim do combobox.
                    Txt_IDPesquisa.SelectionStart = Txt_Clientes.Text.ToString().Length;
                }
            }

            private void Data_Os_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
            {
                Txt_IDPesquisa.Text = Data_Os.Rows[e.RowIndex].Cells["Nome"].Value.ToString();
            }

    // ------------MODELO ORDEM SERVIÇO---------------------------------------

    public class ModeloOrdemServico
        {
            public ModeloOrdemServico()
            {
                this.ID_OS = 0;
                this.IDCliente = 0;
                this.Situacao = "";
                this.DefeitoRelatado = "";
                this.DefeitoConstatado = "";
                this.Descricao = "";
                this.Observacao = "";
                this.NumeroSerie = "";
                this.NumeroOS = "";
                this.Modelo = "";
                this.DataEntradaServico = "";
                this.Valor = 0;
                this.Garantia = "";

            }

            public ModeloOrdemServico(int ID_OS, int IDCliente, string Situacao, string DefeitoRelatado, string DefeitoConstatado, string Descricao, string Observacao, string NumeroSerie,
               string NumeroOS, string Modelo, string DataEntradaServico, decimal Valor, string Garantia)
            {
                this.ID_OS = id_os;
                this.IDCliente = IdCliente;
                this.Situacao = situacao;
                this.DefeitoRelatado = defeitoRelatado;
                this.DefeitoConstatado = defeitoConstatado;
                this.Descricao = descricao;
                this.Observacao = observacao;
                this.NumeroSerie = numeroSerie;
                this.NumeroOS = numeroOS;
                this.Modelo = modelo;
                this.DataEntradaServico = dataEntradaServico;
                this.Valor = valor;
                this.Garantia = garantia;
            }
            private int id_os;
            public int ID_OS
            {
                get { return this.id_os; }
                set { this.id_os = value; }
            }
            private int IdCliente;
            public int IDCliente
            {
                get { return this.IdCliente; }
                set { this.IdCliente = value; }
            }

            private string situacao;
            public string Situacao
            {
                get { return this.situacao; }
                set { this.situacao = value; }
            }

            private string defeitoRelatado;
            public string DefeitoRelatado
            {
                get { return this.defeitoRelatado; }
                set { this.defeitoRelatado = value; }
            }

            private string defeitoConstatado;
            public string DefeitoConstatado
            {
                get { return this.defeitoConstatado; }
                set { this.defeitoConstatado = value; }
            }

            private string descricao;
            public string Descricao
            {
                get { return this.descricao; }
                set { this.descricao = value; }
            }

            private string observacao;
            public string Observacao
            {
                get { return this.observacao; }
                set { this.observacao = value; }
            }

            private string numeroSerie;
            public string NumeroSerie
            {
                get { return this.numeroSerie; }
                set { this.numeroSerie = value; }
            }

            private string numeroOS;
            public string NumeroOS
            {
                get { return this.numeroOS; }
                set { this.numeroOS = value; }
            }
            private string modelo;
            public string Modelo
            {
                get { return this.modelo; }
                set { this.modelo = value; }
            }

            private string dataEntradaServico;
            public string DataEntradaServico
            {
                get { return this.dataEntradaServico; }
                set { this.dataEntradaServico = value; }
            }



            private decimal valor;
            public decimal Valor
            {
                get { return this.valor; }
                set { this.valor = value; }
            }

            private string garantia;
            public string Garantia
            {
                get { return this.garantia; }
                set { this.garantia = value; }
            }
        }

    //-----------TABELAS------------------

    CREATE TABLE Pessoa
    (
    ID_Cli int  NOT NULL PRIMARY KEY identity,
    Nome varchar(100) NOT NULL,
    Tipo [varchar](50) NULL,
    Email varchar(100) NULL,
    Endereco varchar(100) NULL,
    Numero varchar(50) NULL,
    Apartamento varchar(5) NULL,
    Complemento varchar(150) NULL,
    SiglaEstado varchar(5) NULL,
    Cidade varchar(100) NULL,
    Bairro varchar(100) NULL,
    Cep varchar(15) NULL,
    Sexo varchar(50) NULL,
    Cpf varchar(15) NULL,
    Celular varchar(50) NULL,
    DataDeNascimento datetime NULL,
    RazaoSocial varchar(20) NULL,
    Cnpj varchar(20) NULL,
    InscricaoEstadual varchar(20) NULL
    )

    create table OrdemDeServico
    (
    ID_OS int NOT NULL PRIMARY KEY identity,
    Situacao text,
    DefeitoRelatado text,
    DefeitoConstatado text,
    Observacao text,
    Descricao text,
    NumeroDeSerie text,
    Modelo varchar (100),
    DataEntradaServico varchar(15),
    IdCliente Int not null,
    NumeroOS int,
    Valor decimal (10,2),
    Garantia varchar (15)
    FOREIGN KEY (IdCliente) REFERENCES Pessoa(Id_Cli) ON DELETE CASCADE
    )
    create table Trabalhos
    (
    ID_Tr Int NOT NULL PRIMARY KEY identity,
    IdOrdemServico Int not null,
    Valor Decimal (10,2),
    Descricao text,
    Garantia datetime,
    FOREIGN KEY (IdOrdemServico) REFERENCES OrdemDeServico(ID_OS) ON DELETE CASCADE

    )

    //-----DADOS DA CONEXAO-------

    public class DadosDaConexao
        {
            public static String Servidor = @"TITO-PC\TITODB";
            public static String Banco = "BancoAssistec";
            public static String Usuario = "";
            public static String Senha = "";

            public static string StringDaConexao
            {
                get { return @"Data Source=" + Servidor + ";Initial Catalog=" + Banco + ";Integrated Security=True"; }
            }
        }

    //-------------------------CONEXAO------------------------

    public class DALConexao
        {
            private string _stringConexao;
            private SqlConnection _conexao;

            public  DALConexao(string dadosConexao)
            {
                this._conexao = new SqlConnection();
                this.StringConexao = dadosConexao;
                this._conexao.ConnectionString = dadosConexao;
            }

            public string StringConexao
            {
                get { return this._stringConexao; }
                set { this._stringConexao = value; }
            }

            public SqlConnection ObjetConexao
            {
                get { return this._conexao; }
                set { this._conexao = value; }
            }
            public void Conectar()
            {
                if (_conexao.State == System.Data.ConnectionState.Closed)
                {
                    this._conexao.Open();
                }
                
            }
            public void Desconectar()
            {
                if (_conexao.State == System.Data.ConnectionState.Open)
                {
                    this._conexao.Close();
                }
                
            }
        }


    espero que de para entender, sou novo não sei organizar muito bem.

    obrigado por qualquer ajuda, um abraço!

    quarta-feira, 24 de outubro de 2018 03:02

Respostas

  • bah!  cara ta retornando 0  maas não sei como arrumar isso...

     Cara consegui arrumar, muito obrigado pela ajuda, meu  erro estava na 

    private static ModeloOrdemServico PreencherOS(DataTable tabela)

    tava  OSBase.ID_OS = IDChamado;

    troquei por e deu certo.

     OSBase.ID_OS = Convert.ToInt32(Txt_IDPesquisa.Text);

    terça-feira, 30 de outubro de 2018 01:02

Todas as Respostas

  • Tito,

    coloque um breakpoint na linha que está gerando o erro e valide qual o valor que está no textbox quando o programa for fazer a conversão.

    Deve estar preenchido com um valor nulo ou não numérico.

    Abraço!


    Natan

    quarta-feira, 24 de outubro de 2018 15:51
  • Natan, Obrigado por responder este post.

    na verdade ele apenas abre uma caixa de de erro, colo o breakpoint no botao e aparecer isso,  quanto ao validar não sei como fazer isso, como eu disse sou iniciante..

    Ob

    quarta-feira, 24 de outubro de 2018 21:13
  • Saudações,

    Coloque o ponteiro do mouse em cima do ".Text" do txt_Clientes e veja o valor que tem nele.
    Como foi dito pelo Natan, o valor no .Text não pode ser nulo e nem diferente de numérico.

    quinta-feira, 25 de outubro de 2018 00:43
  • esta aparecendo assim 
    quinta-feira, 25 de outubro de 2018 01:11
  • Bom dia,

    Pelo que entendi, acredito que você precisa fazer alterações no seu código para carregar a OS pelo ID ou número da OS e não pelo nome do cliente.

    E repare que no trecho abaixo existe um If para verificar se o Txt_IDPesquisa não está vazio mas está sendo utilizado o Txt_Clientes na conversão para inteiro para passagem do parâmetro, por isso pode estar ocorrendo esse erro. 

    Espero que ajude


    Assinatura: http://www.imoveisemexposicao.com.br

    quinta-feira, 25 de outubro de 2018 13:03
  • o form_Load carrega, mas sem o nome do cliente, 

    Quando escolho outro cliente da erro

    cara to mais perdido que chinelo de bebado, eu sei que teria que vir o id, mas na verdade eu queria o nome,mas não estou conseguindo nenhum dos dois, se vc tiver uma ideia eu fico agradecido. um abraço!

    quinta-feira, 25 de outubro de 2018 22:08
  • Olá Tito, 

    Aí está o problema, você não pode converter o valor de txt_IdPesquisa.Text para Int32 porque ele está preenchido com o valor "Jorge Fonseca".

    Pela lógica o valor que deve ser enviado para o método de PreencherCamposdeTexto deveria ser o código do cliente e não o nome, correto?

    Então, dependendo da sua estrutura, ou você tira o convert.ToInt32 ou altera qual o campo que deve ser pesquisado.

    Abraço!


    Natan


    • Editado 'Natan Silva sexta-feira, 26 de outubro de 2018 10:35
    sexta-feira, 26 de outubro de 2018 10:35
  • Titodj7, como disse antes acredito que nesse trecho você precisa passar o ID ou o número da OS para preencher os controles com os dados da OS selecionada. Você pode fazer a pesquisa pelo nome ou ID do cliente para listar as ordens de serviço, mas acho que com o nome ou ID do cliente não vai ser possível definir qual OS deve ser carregada quando o cliente tiver mais de uma OS cadastrada no sistema.


    Assinatura: http://www.imoveisemexposicao.com.br

    sexta-feira, 26 de outubro de 2018 12:37
  • Galera, quero agradecer a ajuda de todos, pois é complexo o negocio,  como queria puxar o nome achei inviável, mas me ajudou para outras ideias,

    então mudei o codigo e e passei  a usar o evento CellContentClick do datagridview

    assim ele carrega todos os campos com o clic na row do datagrid, apenas escondi o textBox do id,

    MASSS, tenho outro problema kkkkkkk não consigo editar, eu clic no CARREGAR FORMULAARIO, abre todos os campos para  edição, eu edito e savo a edição, vem a mensagem que foi editado com sucesso, MAS NÃO EDITA. NO FINAL no final deixo meu codigo UPDATE  e o botão editar, se alguem tiver uma ideia do que pode estar acontecendo eu agradeço.

    private void Data_Os_CellContentClick(object sender, DataGri

    dViewCellEventArgs e)
            {
                if (e.RowIndex >= 0)
                {
                    DataGridViewRow row = this.Data_Os.Rows[e.RowIndex];
                    Txt_Clientes.Text = row.Cells["Nome"].Value.ToString();
                    Txt_Situacao.Text = row.Cells["Situacao"].Value.ToString();
                    txt_Data.Text = row.Cells["Garantia"].Value.ToString();
                    Txt_Defeito.Text = row.Cells["DefeitoRelatado"].Value.ToString();
                    Txt_Nserie.Text = row.Cells["NumeroDeSerie"].Value.ToString();
                    Txt_Equipamento.Text = row.Cells["Modelo"].Value.ToString();
                    Txt_NumeroOS.Text = row.Cells["NumeroOS"].Value.ToString();
                    Txt_DefeitoCons.Text = row.Cells["DefeitoConstatado"].Value.ToString();
                    Dt_DataEntrada.Text = row.Cells["DataEntradaServico"].Value.ToString();
                    Txt_Observacoes.Text = row.Cells["Observacao"].Value.ToString();
                    Txt_ValotOrc.Text = row.Cells["Valor"].Value.ToString();
                    Txt_Descricao.Text = row.Cells["Descricao"].Value.ToString();
                    Txt_IDPesquisa.Text = row.Cells["ID_OS"].Value.ToString();
                }
            }

                                

    public class ModeloOS


    public static string Editar(ModeloOrdemServico Os)
            {
                string Saida = "";
                DALConexao conexao = new DALConexao(DadosDaConexao.StringDaConexao);
                SqlCommand cmd = new SqlCommand();
                cmd.Connection = conexao.ObjetConexao;
                conexao.Conectar();
                cmd.CommandText = "update OrdemDeServico set Situacao = @situacao, DefeitoRelatado = @defeitoRelatado, DefeitoConstatado = @defeitoConstatado, " +
                    " Descricao = @descricao, Observacao = @observacao, NumeroDeSerie = @numeroDeSerie, Modelo = @modelo, DataEntradaServico = @dataEntradaServico, " +
                    " Garantia = @garantia, IDCliente = @IdCliente, Valor = @valor,  NumeroOS = @numeroOS  where ID_OS = @id_os";
                cmd.Parameters.AddWithValue("@id_os", Os.ID_OS);
                cmd.Parameters.AddWithValue("@situacao", Os.Situacao);
                cmd.Parameters.AddWithValue("@defeitoRelatado", Os.DefeitoRelatado);
                cmd.Parameters.AddWithValue("@defeitoConstatado", Os.DefeitoConstatado);
                cmd.Parameters.AddWithValue("@descricao", Os.Descricao);
                cmd.Parameters.AddWithValue("@observacao", Os.Observacao);
                cmd.Parameters.AddWithValue("@numeroDeSerie", Os.NumeroSerie);
                cmd.Parameters.AddWithValue("@modelo", Os.Modelo);
                cmd.Parameters.AddWithValue("@dataEntradaServico", Os.DataEntradaServico);
                cmd.Parameters.AddWithValue("@garantia", Os.Garantia);
                cmd.Parameters.AddWithValue("@IdCliente", Os.IDCliente);
                cmd.Parameters.AddWithValue("@valor", Os.Valor);
                cmd.Parameters.AddWithValue("@numeroOS", Os.NumeroOS);

                try
                {

                    cmd.ExecuteNonQuery();
                    Saida = "A Ordem de serviço foi editada com sucesso!";
                    conexao.Desconectar();
                }
                catch (Exception exc)
                {
                    Saida = "Ocorreu um erro inesperado: " + exc.Message;
                }

                return Saida;

    }

    private void Btn_Editar_Click(object sender, EventArgs e)
            {
                if (ControleCliente.VerificarExistencia(Txt_Clientes.Text))
                {
                    string Retorno = ControleOS.Editar(PreencherOS());

                    MessageBox.Show(String.Format("{0}", Retorno), "Informação", MessageBoxButtons.OK, MessageBoxIcon.Information);

                    if (MessageBox.Show("Deseja imprimir o arquivo?", "Pergunta", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
                    {
                        //TODO: Função para gerar uma ordem de serviço em PDF Aqui.
                    }

                    this.LimparCampos();
                    this.AlteraBotoes(1);

                }
                else
                {
                    MessageBox.Show(String.Format("Verifique o nome do cliente"), "Erro", MessageBoxButtons.OK, MessageBoxIcon.Information);
                }
                
            }

    Um Abraço!


    • Editado Titodj7 domingo, 28 de outubro de 2018 01:18
    domingo, 28 de outubro de 2018 01:16
  • Bom dia,

    Acho melhor você colocar um Breakpoint no início do método Editar para verificar quais valores estão sendo passados para os parâmetros do comando Update, principalmente para o parâmetro @id_os.


    Assinatura: http://www.imoveisemexposicao.com.br

    segunda-feira, 29 de outubro de 2018 13:23
  • bah!  cara ta retornando 0  maas não sei como arrumar isso...

    terça-feira, 30 de outubro de 2018 00:46
  • bah!  cara ta retornando 0  maas não sei como arrumar isso...

     Cara consegui arrumar, muito obrigado pela ajuda, meu  erro estava na 

    private static ModeloOrdemServico PreencherOS(DataTable tabela)

    tava  OSBase.ID_OS = IDChamado;

    troquei por e deu certo.

     OSBase.ID_OS = Convert.ToInt32(Txt_IDPesquisa.Text);

    terça-feira, 30 de outubro de 2018 01:02