Access数据库,连接字符串jiggery pokerery

时间:2009-06-25 03:15:22

标签: c# ms-access connection-string

我正在尝试从我的c#codefile访问Access数据库。如果我使用:

SqlConnection connection = new SqlConnection(connectionString)

连接字符串为:

  

connectionString =“Provider = Microsoft.Jet.OLEDB.4.0; Data Source = F:\ testing_dev \ sm_development \ App_Data \ SMWeb.mdb”

当我尝试创建一个不支持“提供者”一词的数据集时,我收到错误!我做错了什么?

5 个答案:

答案 0 :(得分:5)

试试这个。

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

OleDbConnection位于System.Data.OleDb名称空间中。

答案 1 :(得分:4)

“SqlConnection”,“SqlCommand”中的“Sql”,以及System.Data.SqlClient中的任何内容通常都严格指向Sql Server。 MS Access绝对不是Sql Server。请改为查看System.Data.OleDb命名空间。

答案 2 :(得分:1)

放下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;
        }
    }
}

答案 3 :(得分:1)

将此用于访问2007

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|/My_DB.accdb;Persist Security Info=False;

答案 4 :(得分:-1)

如果你在c#中尝试这个,请尝试在路径中写两次“\” 例如

“F:\ testing_dev \ sm_development \程序App_Data \ SMWeb.mdb”;

否则全部为okey