none
Nao consigo gravar dados no banco RRS feed

  • Pergunta

  • Boa noite,

    Estou com essa linha abaixo e ja fiz de tudo para entender porque ele não grava no banco ACCESS.

    OBS: 

    Alguem pode ajudar?

       private void atualizarquantidade()
            {
                OleDbConnection con2 = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=bancosistema.accdb");
                OleDbCommand command2 = new OleDbCommand();
                string query2 = @"UPDATE Items SET Quantidade = Quantidade + {0} WHERE Codigo = {1};";

                try
                {


                    for (int i = 0; i < itensEntradaDataGridView.RowCount - 1; i++)
                    {
                        int iQuantidade, iCodigo;
                        int.TryParse(itensEntradaDataGridView.Rows[i].Cells["Quantide"].Value.ToString(), out iQuantidade);
                        int.TryParse(itensEntradaDataGridView.Rows[i].Cells["Codigo"].Value.ToString(), out iCodigo);
                        string update = string.Format(query2, iQuantidade, iCodigo);
                        try
                        {
                            con2.Open();
                            command2.Connection = con2;
                            command2.CommandText = update;
                            command2.ExecuteNonQuery();
                        }
                        catch (Exception ex)
                        {
                            MessageBox.Show("Erro" + ex.Message);
                        }
                        finally
                        {
                            con2.Close();
                        }
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Erro" + ex.Message);
                }
            }


    Christian de Góis Ribeiro

    domingo, 28 de julho de 2019 23:06

Todas as Respostas

  • Christian,

    é retornado algum erro ou apenas não grava?

    Vi que o nome da coluna Quantidade está como "quantide" na linha:

     int.TryParse(itensEntradaDataGridView.Rows[i].Cells["Quantide"].Value.ToString(), out iQuantidade);


    Natan

    segunda-feira, 29 de julho de 2019 10:36
  • Boa tarde,

    Já mudei para quantidade e quando aperto no botão não dá nenhum erro e como tinha dito não grava na tabela.

    😔😔😔


    Christian de Góis Ribeiro

    segunda-feira, 29 de julho de 2019 16:53
  • Christian

    só vem uma coisa na minha cabeça se não está gerando erro: você adicionou o banco através da opção Add Itens? Se sim, verifique se o arquivo está setado com o valor Copy Always na propriedade Copy to Output Directory, se estiver, altere para Copy If Newer.

    Tente debugar o método e checar onde ele está passando.


    Natan

    segunda-feira, 29 de julho de 2019 17:50
  • Boa noite,

    Problema resolvido com o codigo abaixo:

      private void atualizarquantidade()
            {
                string conexao = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=bancosistema.accdb";
                OleDbConnection Conn = new OleDbConnection(conexao);

                if (MessageBox.Show("Confirmar Entrada dos itens", "Atenção", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2) != DialogResult.Yes)
                {
                    return;
                }
                string query = @"UPDATE CadastroProdutos SET Quantidade = Quantidade + {0} WHERE Codigo = {1};";
                OleDbCommand command = new OleDbCommand();
                command.Connection = Conn;
                try
                {
                    Conn.Open();
                    for (int i = 0; i <= itensEntradaDataGridView.RowCount - 1; i++)
                    {
                        int Quantidade, Codigo;
                        int.TryParse(itensEntradaDataGridView.Rows[i].Cells["Quantidade"].Value.ToString(), out Quantidade);
                        int.TryParse(itensEntradaDataGridView.Rows[i].Cells["CodigoProduto"].Value.ToString(), out Codigo);
                        command.CommandText = string.Format(query, Quantidade, Codigo); ;
                        command.ExecuteNonQuery();
                    }
                }
                catch
                {
                }
                finally
                {
                    Conn.Close();
                   //dgvBaixarEntrega.Rows.Clear();
                }

            }


    Christian de Góis Ribeiro

    quinta-feira, 1 de agosto de 2019 21:39