Доступ к базе данных, подключение строки jiggery pokerery - PullRequest
0 голосов
/ 25 июня 2009

Я пытаюсь из моего кодового файла c # получить доступ к базе данных Access. Если я использую:

SqlConnection connection = новый SqlConnection (connectionString)

со строкой подключения:

connectionString = "Provider = Microsoft.Jet.OLEDB.4.0; Источник данных = F: \ testing_dev \ sm_development \ App_Data \ SMWeb.mdb"

Я получаю сообщение об ошибке, когда пытаюсь создать набор данных, что слово «провайдер» не поддерживается! Что я делаю не так?

Ответы [ 5 ]

5 голосов
/ 25 июня 2009

Попробуйте это.

OleDbConnection connection = new OleDbConnection();
string connectionString= @"Data Source=F:\testing_dev\sm_development\App_Data\SMWeb.mdb";

OleDbConnection находится в пространстве имен System.Data.OleDb.

4 голосов
/ 25 июня 2009

«Sql» в «SqlConnection», «SqlCommand» и вообще что-либо в System.Data.SqlClient относится исключительно к Sql Server. MS Access определенно не Sql Server. Вместо этого посмотрите в пространство имен System.Data.OleDb.

1 голос
/ 31 декабря 2012

Используйте это для доступа 2007

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/My_DB.accdb;Persist Security Info=False;
1 голос
/ 25 июня 2009

Отложите SqlConnection и возьмите OleDbConnection :

using System.Data;
using System.Data.OleDb;
using System.Configuration;

public class DataAccess
{
    string connectionString = ConfigurationManager.ConnectionStrings["KeyName"].ConnectionString;

    public DataSet GetData( string sql, string tableName )
    {
        using( var conn = new OleDbConnection( connectionString ) )
        {
            conn.Open();
            var da = new OleDbDataAdapter( sql, conn );
            var ds = new DataSet();
            da.Fill( ds, tableName );
            return ds;
        }
    }
}
0 голосов
/ 13 января 2013

если вы пытаетесь это сделать в c #, пожалуйста, попробуйте написать "\" два раза в пути например

"F: \ testing_dev \ sm_development \ App_Data \ SMWeb.mdb";

иначе все окей

...