C# 如何在web.config文件中获取相对路径

C# 如何在web.config文件中获取相对路径,c#,asp.net,C#,Asp.net,我在stackoverflow搜索了一下如何创建一个相对文件,尝试了各种方法,但都没有成功,我希望你们能帮我解决这个问题 这是我的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 Sour

我在stackoverflow搜索了一下如何创建一个相对文件,尝试了各种方法,但都没有成功,我希望你们能帮我解决这个问题

这是我的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"/>
我得到了这个错误:
CS1009:无法识别的转义序列


那么我到底做错了什么

您在路径字符串中使用了\但这是文字的符号。 因此,\后面的任何字符都将被解释为类似\的文字。不是有效的字符。 实际上,您需要的是文本\其序列为\\ 另外,字符串前面的@infort表示您不需要文本

因此,mappath(“需要是mappath(@)”或every\需要成为\\

您没有转义路径中的“\”字符,因此它在
mappath()方法中导致错误

更改此项:

Server.MapPath(“..\..\Anderson\2007数据库05-12-2011(Esfahanian的冲突副本2013-06-24).mdb”

为此:

Server.MapPath(@.\..\Anderson\2007数据库05-12-2011(Esfahanian的冲突副本2013-06-24).mdb“

或者这个:


Server.MapPath(“..\\..\\Anderson\\2007数据库05-12-2011(伊斯法罕冲突副本2013-06-24).mdb”

我不会在连接字符串中使用
。我也不会在目录名上使用撇号,即使这只是因为许多库无法很好地处理。请尝试将其删除,看看是否有帮助。我会先选择一个简单且简短的名称值,该值不包含任何特殊字符。我得到此错误现在是CS1012:字符文字中的字符太多,请您解释一下,当我将其更改为以下内容时,效果会更好:string connectionString=ConfigurationManager.ConnectionStrings[“2007数据库05-12-2013(Esfahanian的冲突副本2013-06-24)connectionString”]。connectionString+Server.MapPath(@“.\..\Anderson\2007数据库05-12-2011(Esfahanian的冲突副本2013-06-24).mdb”);我收到此错误:对象引用未设置为对象的实例。当我将其更改为第一个方法时,我收到此错误:对象引用未设置为对象的实例。您确定
ConfigurationManager.ConnectionString[”2007数据库05-12-2013(Esfahanian的冲突副本2013-06-24)ConnectionString“]。ConnectionString
正在返回有效值?删除粗体部分,然后查看是否仍然出现对象引用错误:string ConnectionString=ConfigurationManager。ConnectionString[“2007数据库05-12-2013(Esfahanian的冲突副本2013-06-24)ConnectionString“].ConnectionString+Server.MapPath(“..\..\Anderson\2007 Database 05-12-2011(Esfahanian的冲突副本2013-06-24).mdb”);我仍然会收到相同的错误,那么这到底意味着什么?这意味着调用
ConfigurationManager.ConnectionString[…]
未返回任何内容。您需要检查配置文件中连接字符串的名称以正确调用它。如果您的连接字符串类似于
,则您将访问的连接字符串类似于
ConfigurationManager。ConnectionString[“Target”]
<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>