2014-09-30 417 views
1

如何將連接字符串的絕對路徑更改爲相對路徑?

<add name="movies_db.mdf" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename=C:\Users\user\Documents\Visual Studio 2013\WebSites\Movies\App_Data\movies_db.mdf;Integrated Security=True" 
    providerName="System.Data.SqlClient"/> 

嗨,我在我的web.config頁面添加此連接字符串連接到我的 「movies_db.mdf」 數據庫。將鼠標指向「服務器資源管理器」中的數據庫名稱時,我從屬性部分複製了整個路徑。現在這已經在我的電腦上工作了,據我所知,連接字符串的路徑稱爲絕對路徑。如何將其更改爲相對路徑,以便它可以在另一臺計算機上工作並連接?

我正在使用Visual Studio 2013並試圖創建一個連接到數據庫的網站。

+0

在這裏看到我的回答:http://stackoverflow.com/questions/25964195/why-doesnt-datadirectory-change-on-run-時間/ 25964352#25964352 – Claies 2014-09-30 22:08:15

回答

1

讓您的連接字符串設置如下:

<connectionStrings> 
    <add name="movies_db.mdf" connectionString="Data Source=(LocalDB)\v11.0;AttachDbFilename={%FileName%};Integrated Security=True" 
    providerName="System.Data.SqlClient"/> 
</connectionStrings> 

然後在你的代碼中使用的連接字符串如下:

ConfigurationManager.ConnectionStrings["movies_db.mdf"].ConnectionString.Replace("{%FileName%}", 
Server.MapPath("~/App_Data/movies_db.mdf")); 
+0

嗨,我做了上面提出的更改並在另一臺計算機上嘗試過,但現在出現了另一個問題: 「嘗試爲文件C:\ Users \ .net \附加自動命名數據庫。 Desktop \ Movies_Project_300521788 \ App_Data \ movies_db.mdf失敗。具有相同名稱的數據庫存在,或者指定的文件無法打開,或位於UNC共享上。「 我該如何解決這個問題? 感謝您的回覆 – 2014-10-01 17:30:49

+0

這似乎更像是一個文件權限問題。運行您的IIS服務器的帳戶(通常是應用程序池帳戶用戶ID)無法訪問您的桌面。我會感激的是,這並不是因爲......如果Web應用程序被允許讀取/修改桌面的內容,我們會遇到巨大的安全問題。嘗試將其放置在您知道的IIS應用程序池用戶有權訪問的某個位置。例如,對我來說就是:C:\ inetpub \ wwwroot \ MyWebSite。基本上,將它放在Web應用程序的App_Data文件夾中。所以C:\ inetpub \ wwwroot \ MyWebsite \ App_Data。 – 2014-10-01 17:37:10

+0

你的建議工作完美:我只是把文件夾放在intetpub \ wwwwroot中,並且數據庫讀取正常。 感謝您的幫助,您的解釋幫助我瞭解了以前不知道的一些事情。有了這個,我用你的連接字符串和sqlConnection對象,工作正常。 我的問題現在應該總是使用,而不是使其成爲絕對路徑?似乎絕對路徑只能在一臺計算機上運行,​​除非您希望它保留在計算機上,否則這是絕對無用的嗎? 再次感謝 – 2014-10-05 16:29:28

-1

嘗試。它適用於SQL Server數據庫,但不知道是否爲的LocalDB工作

<add name="con-string1" connectionString="Data Source=(LocalDB)\v11.0; Initial Catalog=movies_db;Integrated Security=True" providerName="System.Data.SqlClient"/> 
+1

這對存儲在文件系統中的數據庫不起作用。他的問題是關於文件系統中的DB;沒有一個存儲在SQL Server中。 – 2014-09-30 22:08:58