none
Conexão C# (Visual Studio 2012) e .accdb (Access 2013) RRS feed

  • Pergunta

  • Ola pessoal.

    Estou tentando conectar um programa com banco .accdb pelo Visual Studio 2012.

    O código está da seguinte forma.

            private void ConnectDB()
            {
                //Cria o DataAdapter
                OleDbDataAdapter da = new OleDbDataAdapter();
    
                //Define a string de conexão PARA O OFFICE 2013
                string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Gustavo\\Documents\\PacienteNeuro.accdb;Persist Security Info=False;";
    
                //Cria a conexão
                OleDbConnection myCon = new OleDbConnection(strConn);
    
                //Inicia a string SQL
                string sql = "";
                            
                //Atribui o dataAdapter a string SQL e a string de conexão
                da = new OleDbDataAdapter(sql, strConn);
    
                //Cria a dataTable
                //DataTable dt = new DataTable();  
                DataSet dt = new DataSet();
    
                //Preenche o dataAdapter com a dataTable
                da.Fill(dt);
    
                //Apresenta os resultados na DataGridView
                selecpat_dataGridView.DataSource = dt;            
            }

    Pelo que andei vendo pela internet, sendo um arquivo do tipo .accdb do access o provider fica da seguinte maneira.

    Provider=Microsoft.ACE.OLEDB.12.0

    No entanto durante a execução o visual studio reclama o seguinte na linha "da.Fill(dt);" : O comando de texto não foi definido para o objeto de comando.

    Pro favor, se alguém souber de alguma coisa que possa ajudar...

    sexta-feira, 1 de novembro de 2013 20:07

Todas as Respostas

  • Ola pessoal.

    Estou tentando conectar um programa com banco .accdb pelo Visual Studio 2012.

    O código está da seguinte forma.

            private void ConnectDB()
            {
                //Cria o DataAdapter
                OleDbDataAdapter da = new OleDbDataAdapter();
    
                //Define a string de conexão PARA O OFFICE 2013
                string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Users\\Gustavo\\Documents\\PacienteNeuro.accdb;Persist Security Info=False;";
    
                //Cria a conexão
                OleDbConnection myCon = new OleDbConnection(strConn);
    
                //Inicia a string SQL
                string sql = "";
                            
                //Atribui o dataAdapter a string SQL e a string de conexão
                da = new OleDbDataAdapter(sql, strConn);
    
                //Cria a dataTable
                //DataTable dt = new DataTable();  
                DataSet dt = new DataSet();
    
                //Preenche o dataAdapter com a dataTable
                da.Fill(dt);
    
                //Apresenta os resultados na DataGridView
                selecpat_dataGridView.DataSource = dt;            
            }

    Pelo que andei vendo pela internet, sendo um arquivo do tipo .accdb do access o provider fica da seguinte maneira.

    Provider=Microsoft.ACE.OLEDB.12.0

    No entanto durante a execução o visual studio reclama o seguinte na linha "da.Fill(dt);" : O comando de texto não foi definido para o objeto de comando.

    Pro favor, se alguém souber de alguma coisa que possa ajudar...

    //Inicia a string SQL
                string sql = "";
    Então aqui ta faltando coloca a SQL não é???

    Fúlvio Cezar Canducci Dias

    terça-feira, 5 de novembro de 2013 00:16
  • Isso mesmo. Corrigi... Eu não estava utilizando as cápsulas corretamente.

    No meu caso estou utilizando assim por enquanto.

    string sql = @"Select * from Paciente";

    Muito obrigado cara.

    quarta-feira, 6 de novembro de 2013 18:01
  • amigo, se for web use o web.config, se for windows forms ou wpf, use o app.config para sua string de conexão ficar organizada, use stored procedure, e procure desenvolvimento em camadas, o código fica uma beleza.
    quinta-feira, 7 de novembro de 2013 11:52