MS Access 数据库的连接字符串

Connection String of MS Access database

我用 C# 开发了一个 Windows 应用程序,它的数据库在 Access 2010 中。

我有数据库连接字符串,但出现错误: OleDbException 未处理

请告诉我问题所在及其解决方案。

con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source="\dtinaurdsna02\LE-IN\Admin\Quality Rating\Quality_Rating_Tool\Quality_Rating_Tool.accdb";Persist Security Info=True;");

您的 "Data Source="\dtinaurdsna02\LE-IN\Admin\Quality Rating\Quality_Rating_Tool\Quality_Rating_Tool.accdb" 是引号,例如 ("") 取消了原来的引号...将其更改为

con = new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source='\dtinaurdsna02\LE-IN\Admin\Quality Rating\Quality_Rating_Tool\Quality_Rating_Tool.accdb';Persist Security Info=True;");

如果您知道确切的路径,您可以使用

con = new OleDbConnection
       (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source
             =\dtinaurdsna02\LE-IN\Admin\Quality
                Rating\Quality_Rating_Tool\Quality_Rating_Tool.accdb;
                Jet OLEDB:Database Password=xxxxxxx;
                 Persist Security Info=True;");

如果数据库在应用程序文件夹中,您可以在下面使用

string path = Environment.CurrentDirectory;
      path = path + "\Quality_Rating_Tool.accdb;";
   con = new OleDbConnection
           (@"Provider=Microsoft.ACE.OLEDB.12.0;Data Source" + path);

1) \ 是转义的 \

2) 由于引号,您在 Source= 之后结束了字符串。您可以使用 ' 而不是 ".

3) @ 禁用转义

您需要阅读有关 Escaping 的内容!

con = new OleDbConnection(@"Provider=Microsoft.ACE.OLEDB.12.0;DataSource='\dtinaurdsna02\\LE-IN\Admin\Quality Rating\Quality_Rating_Tool\Quality_Rating_Tool.accdb';Persist SecurityInfo=True;");

var connect = @"Provider=Microsoft.Jet.OleDb.4.0;Data Source= C:\Users\User1\Desktop\test.mdb";

using(var conn = new OleDbConnection(connect)) { codes here }

这样使用