我必须安装我的窗口表单应用程序并将数据库保留在AppData目录中。但是我无法在app.confing中建立数据库的正确路径。我在StackOverflow上找到了一些答案,然后尝试以下方法。
<connectionStrings>
<add name="Default" connectionString="Driver={Microsoft Access Driver
(*.mdb)};AttachDbFileName=|DataDirectory|\HamaraPaisa.mdb"
providerName="System.Data.OleDb" />
</connectionStrings>
在我的Program.cs文件中:
static class Program
{
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
AppDomain.CurrentDomain.SetData("DataDirectory",
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData));
Application.Run(new Form1());
}
}
但是我仍然得到“对象引用未设置为对象的实例” 异常,因为我没有连接到数据库。
答案 0 :(得分:1)
如果使用ODBC驱动程序打开Microsoft Access数据库,则正确的连接字符串为
OdbcConnection cn = new OdbcConnection(@"Driver={Microsoft Access Driver (*.mdb)};
Dbq=|DataDirectory|\HamaraPaisa.mdb");
如果使用的是OleDb库,则应将连接字符串写为
OleDbConnection cn = new OleDbConnection(@"Provider=Microsoft.ACE.OleDb.12.0;
Data Source=|DataDirectory|\HamaraPaisa.mdb");
或者,如果您拥有32位应用程序和旧的(2007年预访问)MDB文件,则可以使用
OleDbConnection cn = new OleDbConnection(@"Provider=Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=|DataDirectory|\HamaraPaisa.mdb");
但是,我强烈建议您在 Environment.SpecialFolder.ApplicationData 中创建您的个人数据文件夹,并且不要将其他文件添加到已经拥挤的文件夹中。