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"

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值