在 app.config / web.config 的 connectionStrings 中寫文件路徑時,不需要也不支持 C# 的 @ 逐字字符串語法。本文釐清配置文件與代碼中字符串處理的區別。
<connectionStrings>
<add name="MyDb" connectionString="Data Source=@D:\Data\my.db" /> <-- 無效 -->
</connectionStrings>
<connectionStrings>
<add name="MyDb" connectionString="Data Source=D:\Data\my.db" /> <-- 直接寫路徑 -->
</connectionStrings>
\ 就是反斜杠字符,無需轉義&、<、>、"、'),需用實體編碼:&、< 等| 場景 | 處理方式 | 示例 |
|---|---|---|
| C# 代碼中普通字符串 | \ 為轉義字符 | "D:\\Data\\my.db" |
| C# 代碼中 @ 逐字字符串 | \ 為普通字符 | @"D:\Data\my.db" |
| XML 配置文件屬性值 | 直接字面量,無轉義 | D:\Data\my.db |
string connStr = ConfigurationManager.ConnectionStrings["MyDb"].ConnectionString;
// connStr 直接得到 "Data Source=D:\Data\my.db",可直接用
結論:配置文件寫「原樣路徑」,代碼讀取後直接用,中間無需任何轉義處理。