C#-如何在AppData目录中安装数据库?

时间:2018-07-02 07:20:19

标签: c# .net winforms

我必须安装我的窗口表单应用程序并将数据库保留在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());
      }
   }

但是我仍然得到“对象引用未设置为对象的实例”  异常,因为我没有连接到数据库。

1 个答案:

答案 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 中创建您的个人数据文件夹,并且不要将其他文件添加到已经拥挤的文件夹中。