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"

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章