我正在尝试从我的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”
当我尝试创建一个不支持“提供者”一词的数据集时,我收到错误!我做错了什么?
答案 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