我正在检查MSDN社交中c#的访问数据库连接,我发现样本连接字符串如下
string ConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=D:\abc.mdb;Jet OLEDB:Database Password=password";
现在我的问题是假设我创建了一个表单应用程序,并将数据库文件abc.mdb放在.exe文件所在的同一位置。在这种情况下,我可以写如下连接字符串吗?
string ConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=abc.mdb;Jet OLEDB:Database Password=password";
我正在尝试使用SQL数据库文件,但它没有运行可能是完整路径对于这种情况是强制性的。我是对的?
答案 0 :(得分:1)
如果您不能在连接字符串中使用相对路径,则可以在运行时生成类似以下内容:
string connstring = string.Format(@“Provider = Microsoft.ACE.OLEDB.12.0; Data Source = {0}; Persist Security Info = true”,Path.Combine(Directory.GetCurrentDirectory(),“MyDatabase01.accdb “));
答案 1 :(得分:0)
尝试,(虽然未经过测试)
string dbpath = AppDomain.CurrentDomain.BaseDirectory + "abc.mdb";
string ConnStr = String.Format(Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Jet OLEDB:Database Password=password;", dbpath)
答案 2 :(得分:0)
要回答您的第一个问题,是的,将.mdb文件放在同一目录中将与第二个连接字符串一起使用。
假设您在第二个“问题”中表示MSSQL或MSSQL Express,则需要将SQL Server实例指定为连接字符串的一部分。
答案 3 :(得分:0)
对于ASP.NET 2.0或更高版本,数据库文件(.mdb或.accdb)应始终进入App_Data文件夹。这有两个原因:首先,App_Data配置为阻止用户浏览到该文件夹并下载数据库副本。其次,您可以利用特殊的DataDirectory标记(或替换字符串)来引用连接字符串中的文件。 DataDirectory默认为App_Data目录。
所以你的Access数据源是这样的。
<asp:AccessDataSource
ID="AccessDataSource1"
runat="server"
DataFile="~/App_Data/MyDb.mdb"
SelectCommand="Select * From MyTable">
</asp:AccessDataSource>
答案 4 :(得分:0)
我没有对此进行测试,但可以使用DataDirectory替换字符串。
string ConnStr = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=|DataDirectory|\abc.mdb;Jet OLEDB:Database Password=password";
然后你可以做
AppDomain.CurrentDomain.SetData("DataDirectory", @"D:\MyApp");
如以下KB article中所述:
<强> | DataDirectory目录|替换字符串支持
| DataDirectory | (用管道符号括起来)是替换字符串 表示数据库路径。因此,你没有必要 包括代码中的完整路径。当您包含完整路径时 代码,您可能会遇到问题,因为完整的数据库路径 可以在不同的位置序列化。 | DataDirectory | 替换字符串也可以轻松共享项目和 部署应用程序。
例如,如果在代码中包含完整路径,则应用程序 可以有以下连接字符串。
数据源= c:\ program files \ MyApp \ Mydb.sdf
如果您使用| DataDirectory |代换 字符串,应用程序可以具有以下连接字符串。
数据 Source = | DataDirectory | \ Mydb.sdf
要设置DataDirectory属性,请调用AppDomain.SetData方法。如果您未设置DataDirectory 属性,应用以下默认规则来访问 数据库文件夹:
- 对于放在文件夹中的应用程序 用户的计算机,数据库文件夹使用应用程序文件夹。
- 对于 在ClickOnce下运行的应用程序,即数据库文件夹 使用创建的特定数据文件夹。