Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Tai Moura

DatagridView

Recommended Posts

Pessoal meu problema é o seguinte:

Tem um Datagridview usando os dados do meu DataSet para serem vizualizados;

porém fiz uma checkbox(boolean) e quero edita-la direto no datagridview e colocar um botão salvar

para a modificação também ser salavar no BD, mas não consigo dar o Update na tabela.

Alguém consegue me dar uma "Luz"?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Cara eu não consigo porque simplesmente o comando update não funciona,

não sei o que estou fazendo de errado no comando que dá um erro de SQL.

Me falaram pra mim fazer um evento CellClick, mas nunca trabalhei com o tal

e não faço idéia de como funciona.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Você está fazendo isso com windows forms? Asp? Dê mais detalhes e poste o código que montou até agora.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Esse codigo eh da classe DAL

 

 

        public void Alterar(VendasInformation venda)
       {
           SqlConnection cn = new SqlConnection();
           SqlTransaction t = null;

           try
           {
               cn.ConnectionString = Dados.StringDeConexao;



               SqlCommand cmd = new SqlCommand();
               cmd.Connection = cn;
               cmd.CommandText = @"
                                   update vendas_ds set  data=@data, 
                                   quantidade=@quantidade, faturado=@faturado, codigodocliente=@codigodocliente, 
                                   codigodoproduto=@codigodoproduto
                                   where codigo = @codigo";

               cn.Open();

               t = cn.BeginTransaction(IsolationLevel.Serializable);


               cmd.Transaction = t;




               cmd.Parameters.AddWithValue("@codigo", venda.Codigovendas);
               cmd.Parameters.AddWithValue("@codigodocliente", venda.Codigodocliente);
               cmd.Parameters.AddWithValue("@codigodoproduto", venda.Codigodoproduto);
               cmd.Parameters.AddWithValue("@data", venda.Data);
               cmd.Parameters.AddWithValue("@quantidade", venda.Quantidade);
               cmd.Parameters.AddWithValue("@faturado", venda.Faturado);


               cmd.ExecuteNonQuery();

               t.Commit();
           }

           catch (SqlException ex)
           {
               throw new Exception("Servidor SQL Erro: " + ex.Number);
           }
           catch (Exception ex)
           {
               throw new Exception(ex.Message);
           }
           finally
           {
               cn.Close();
           }
       }

 

 

 

 

Esse outro do Botão salvar

 

 

 

        private void btnSalvar_Click(object sender, EventArgs e)
       {


           try
           {
               VendasInformation venda = new VendasInformation();
               //venda.Codigovendas = dgvListarvendas.Rows.Count.ToString();

               VendasBLL obj = new VendasBLL();
               obj.Alterar(venda);
               //MessageBox.Show(A venda foi atualizada com sucesso!");
           }
           catch (Exception ex)
           {
               MessageBox.Show("Erro: " + ex.Message);
           }
         //  AtualizaGrid();



       }

 

 

 

Bem como vocês podem ver na classe DAL é onde fiz o codigo para o UPDATE na tabela;

porém não sei o que fazer no botão salvar, porque quando clico da um erro de SQLSERVER

falando que meu DateTime está fora dos padrões de data, Erro SQL DateTime overflow mais necessariamente!

Compartilhar este post


Link para o post
Compartilhar em outros sites

veja como esta sendo passado o valor do seu campo: venda.Data

Qualquer coisa formate ele antes de gravar, não sei qual a configuração do seu banco, mas um exemplo:

 

cmd.Parameters.AddWithValue("@data", venda.Data.ToString("MM/dd/yyyy"));

 

Abraços...

Compartilhar este post


Link para o post
Compartilhar em outros sites

outras sugestões:

 

1) formata as datas para yyyyMMdd para passar pro SQL, desta forma nunca terás problemas

 

2) se for projeto web, joga numa váriavel do tipo DateTime e no webconfig coloca isto dentro da tag system.web:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="pt-br"/>

desta forma podes trabalhar com o formato português do brasil --> dd/MM/yyyy sem necessidade nenhuma de formatação de datas no código

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente obrigado, consegui resolver o problema do DataTime!

Porém o recurso roda tudo conforme o planejado e chega a aparecer a tela

que diz que foi "alterado com sucesso", porém quando vejo meu banco de dados

nada mudou, o que pode ser, não consigo resolver ja que não aparece nenhuma mensagem de erro

e teoricamente tudo ocorreu como o planejado?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Gente obrigado, consegui resolver o problema do DataTime!

Porém o recurso roda tudo conforme o planejado e chega a aparecer a tela

que diz que foi "alterado com sucesso", porém quando vejo meu banco de dados

nada mudou, o que pode ser, não consigo resolver ja que não aparece nenhuma mensagem de erro

e teoricamente tudo ocorreu como o planejado?

tenta passar os parâmetros na mesma ordem do comando pra ver se resolve

 

update vendas_ds set  data=@data, 
quantidade=@quantidade, faturado=@faturado, codigodocliente=@codigodocliente, 
codigodoproduto=@codigodoproduto
where codigo = @codigo";

cmd.Parameters.AddWithValue("@data", venda.Data);
cmd.Parameters.AddWithValue("@quantidade", venda.Quantidade);
cmd.Parameters.AddWithValue("@faturado", venda.Faturado);
cmd.Parameters.AddWithValue("@codigodocliente", venda.Codigodocliente);
cmd.Parameters.AddWithValue("@codigodoproduto", venda.Codigodoproduto);
cmd.Parameters.AddWithValue("@codigo", venda.Codigovendas);          

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.