2013-07-18 170 views
0

我搜索瞭如何製作相關文件並嘗試過各種各樣的東西,但沒有奏效,我希望看看你們是否可以幫助我出。如何在web.config文件中獲取相對路徑

這裏是我的web.config文件我的連接刺痛:

<add name="2007 Database 05-12-2013(Esfahanian's conflicted copy 2013-06-24) 
    ConnectionString" connectionString="Provider=Microsoft.Jet.OLEDB.4.0;Data 
    Source=" providerName="System.Data.OleDb"/> 

這裏相對路徑在我aspx文件:

<script runat="server"> 
    string connectionString = ConfigurationManager 
    .ConnectionStrings["2007 Database 
    05-12-2013(Esfahanian's conflicted copy 2013-06-24) ConnectionString"] 
    .ConnectionString + Server.MapPath("..\..\Anderson\2007 
    Database 05-12-2011 (Esfahanian's conflicted copy 2013-06-24).mdb"); 
</script> 

而且我得到這個錯誤:CS1009: Unrecognized escape sequence

那麼究竟是什麼做錯了

+1

我不會用'''在一個連接字符串。即使支持目錄名,我也不會使用撇號,因爲許多庫不能很好地處理這個問題。嘗試刪除它,看看是否有幫助。 – Icarus

+0

我首先選擇一個簡單和短名稱的值,它不包含任何特殊字符。 –

+0

現在我得到這個錯誤CS1012:字符文字太多字符 – foobar2023

回答

0

你是在你的路徑字符串中使用\,但那是文字的符號。 因此,\之後的任何字符都將被解釋爲像\那樣的文字。不是有效的字符。 你真的想要文字\的順序是\\ 也@字符串infront說明你不想要文字。

所以在MapPath(「必須在MapPath(@」或每\需要變得\\

+0

可以請你解釋一下更好 – foobar2023

+0

當我改變它爲:string connectionString = ConfigurationManager.ConnectionStrings [「2007 Database 05-12-2013(Esfahanian's conflicted copy 2013- 06-24)ConnectionString「] .ConnectionString + Server.MapPath(@」.. \ .. \ Anderson \ 2007 Database 05-12-2011(Esfahanian's conflicted copy 2013-06-24).mdb「);我得到這個錯誤:對象引用未設置爲對象的實例。 – foobar2023

1

你沒有逃脫‘\’字符在你的路徑,以便它在MapPath()方法導致錯誤。

更改此:

Server.MapPath("..\..\Anderson\2007 Database 05-12-2011 (Esfahanian's conflicted copy 2013-06-24).mdb"

這樣:

Server.MapPath(@"..\..\Anderson\2007 Database 05-12-2011 (Esfahanian's conflicted copy 2013-06-24).mdb"

或本:

Server.MapPath("..\\..\\Anderson\\2007 Database 05-12-2011 (Esfahanian's conflicted copy 2013-06-24).mdb"

+0

第一種是易讀性的首選方法。 – AntLaC

+0

當我將其更改爲第一個方法時,出現此錯誤:未將對象引用設置爲對象的實例。 – foobar2023

+0

您確定ConfigurationManager .ConnectionStrings [「2007數據庫 05-12-2013(Esfahanian的衝突副本2013-06-24)ConnectionString」] .ConnectionString'返回一個有效值嗎? –