Access数据库在C#.net下的存储路径问题

即使我将数据库放在项目内建的文件夹db下,可是进行存储操作的时候,数据表没有任何变化。后来发现储存改变发生在bin//debug//db目录下的数据库中,这个数据库是在程序运行时自动复制过去的,可是为什么存储变化没有反应到外面项目内的数据库db下呢?我想连接字符串中datasource中的datadirectory存在一些玄机,于是我找到一个改变存储路径的方法,以实现对数据库操作能落实到你指定的项目数据库文件中。


        //改变数据库存储路径
   string p = AppDomain.CurrentDomain.BaseDirectory;//获取操作的直接路径
   //重新定位数据库
   if (p.IndexOf("//bin//") > 0)
   {
         if (p.EndsWith("//bin//Debug//"))
         p = p.Replace("//bin//Debug", "");
         if (p.EndsWith("//bin//Release//"))
         p = p.Replace("//bin//Release", "");
   }
   if (!p.EndsWith("App_Data//"))
         p = p + "db//";
         p = p + "App_Data//";//这里可以指定项目数据库文件夹名
   AppDomain.CurrentDomain.SetData("DataDirectory", p);
   Application.EnableVisualStyles();
   Application.SetCompatibleTextRenderingDefault(false);


  其实最后bin//debug//db下还是会有一份数据库文件,但是进行的操作可以落实反应到外面项目里数据库文件了。App.config文件里的连接字符串为:connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=|DataDirectory|数据库名.mdb"

©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页