none
Problema em acesso Banco de Dados VS 2013 - Access [Estudante] RRS feed

  • Pergunta

  • Estou aprendendo a programar em C# estou tentando efetuar uma conexão a um banco de dados que eu criei utilizando Microsoft access, salvei este banco no mesmo diretório da minha Solution. Porém após adicionar este banco no VS 2013 e efetuar uma connectionString ele não está localizando este banco e no final não faz nenhuma edição. ocorre o erro:

    An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll

    Additional information: No value given for one or more required parameters.

    Acusa o erro no método (dr = cmm.ExecuteReader();)

    Este é meu código:

        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                if (textBox1.Text == "")
                {
                    MessageBox.Show ( "Escreva um valor no codigo");
                    return;
                }
                OleDbConnection con = new OleDbConnection();
                con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\bdQBB.accdb;Persist Security Info=True";
    
              
                    con.Open();
                    OleDbCommand cmm = new OleDbCommand();
                    cmm.CommandText = "SELECT descricao, vlr_venda, vlr_compra, qtd_esoque FROM tbPRODUTOS WHERE cod_produto =" + textBox1.Text;
                    cmm.CommandType = CommandType.Text;
                    cmm.Connection = con;
    
                    OleDbDataReader dr;
                    dr = cmm.ExecuteReader();
                    dr.Read();
                    textBox2.Text = dr.GetString(0);
                    con.Close();
                }
      
    
             
            }
        }
    }
    

    Já tentei utilizar o Wizzard para efetuar o processo automaticamente mas mesmo assim o erro persiste.

    sexta-feira, 13 de novembro de 2015 13:23

Todas as Respostas

  • Estou aprendendo a programar em C# estou tentando efetuar uma conexão a um banco de dados que eu criei utilizando Microsoft access, salvei este banco no mesmo diretório da minha Solution. Porém após adicionar este banco no VS 2013 e efetuar uma connectionString ele não está localizando este banco e no final não faz nenhuma edição. ocorre o erro:

    An unhandled exception of type 'System.Data.OleDb.OleDbException' occurred in System.Data.dll

    Additional information: No value given for one or more required parameters.

    Acusa o erro no método (dr = cmm.ExecuteReader();)

    Este é meu código:

        public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                if (textBox1.Text == "")
                {
                    MessageBox.Show ( "Escreva um valor no codigo");
                    return;
                }
                OleDbConnection con = new OleDbConnection();
                con.ConnectionString = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\bdQBB.accdb;Persist Security Info=True";
    
              
                    con.Open();
                    OleDbCommand cmm = new OleDbCommand();
                    cmm.CommandText = "SELECT descricao, vlr_venda, vlr_compra, qtd_esoque FROM tbPRODUTOS WHERE cod_produto =" + textBox1.Text;
                    cmm.CommandType = CommandType.Text;
                    cmm.Connection = con;
    
                    OleDbDataReader dr;
                    dr = cmm.ExecuteReader();
                    dr.Read();
                    textBox2.Text = dr.GetString(0);
                    con.Close();
                }
      
    
             
            }
        }
    }

    Já tentei utilizar o Wizzard para efetuar o processo automaticamente mas mesmo assim o erro persiste.

    cod_produto é de qual Tipo ?

    Fulvio C

    domingo, 15 de novembro de 2015 23:29
  • Numeração Automática
    segunda-feira, 16 de novembro de 2015 12:34
  • Olá Maglionii,

    Nâo sei se entendi bem seu problema mas tente dar uma olhada nesse link.


    Leopoldo A. Nascimento (Ajude o máximo que puder, que assim será feito por você.) - Foi útil esta resposta? Então marque. ;)

    segunda-feira, 16 de novembro de 2015 13:38
  • Amigo, boa tarde!

    Crie uma classe 

    Segue exemplo:

    using System;
    using System.Collections.Generic;
    using System.Text;
    using System.Data.OleDb;
    using System.Data;

    namespace Escolinha
    {

        public class Aluno_ADO
        {
            private String strconn;
            private OleDbConnection conn;

            public Aluno_ADO() // codigo abaixo para a conexão com a base de dados;
            {
                
                strconn = @"Provider=Microsoft.Jet.OLEDB.12.0;Data Source=|DataDirectory|\gvida.mdb";
                conn = new OleDbConnection(strconn);
                
            }






            public DataTable RetornaID(int Id) //retorna a consulta pelo nº de ID
            {
                // já inicializada no construtor
                // SqlConnection conn = new SqlConnection(strconn); 
                //conn.Open();

                String sqlProduto = " Select * From OS Where " +
                                    " OS.Id = @Id ORDER BY [Id] DESC ";
                OleDbCommand cmdProduto = new OleDbCommand(sqlProduto, conn);
                cmdProduto.Parameters.AddWithValue("@Id", Id);

                OleDbDataAdapter da = new OleDbDataAdapter();
                da.SelectCommand = cmdProduto;
                //DataSet ds = new DataSet();
                DataTable dt = new DataTable();
                //da.Fill(ds);
                da.Fill(dt);
                //return ds.Tables[0];
                return dt;

            }

            
    }

    No seu formulário você estancia a classe e chama o método da classe:

    Escolinha es = new Escolinha();

    dataGridView1.DataSource = ado.Retorna_ID(TextBox1.Text); 

    Espero ter ajudado, caso seja útil não esqueça de marcar como resposta.

    Abraços!


    Jimi Anderson

    • Sugerido como Resposta Anderson Mac terça-feira, 22 de dezembro de 2015 14:06
    terça-feira, 22 de dezembro de 2015 14:06