C#中是否存在一種方法從表示ConnectionString
的字符串提取文件路徑爲SqlCE
.sdf文件?我想檢查文件是否在初始化時存在,如果文件已被修改,請將其備份。C# - 從連接字符串獲取文件路徑
樣品連接字符串:
strConn = "Data Source=|DataDirectory|\dbAlias.sdf";
C#中是否存在一種方法從表示ConnectionString
的字符串提取文件路徑爲SqlCE
.sdf文件?我想檢查文件是否在初始化時存在,如果文件已被修改,請將其備份。C# - 從連接字符串獲取文件路徑
樣品連接字符串:
strConn = "Data Source=|DataDirectory|\dbAlias.sdf";
有點晚了也許,但我碰到這個問題詭計同樣的問題掙扎出來。您可以通過AppDomain.CurrentDomain.GetData("DataDirectory")
找到|DataDirectory|
文件夾的位置。所以,你的ConnectionString可以翻譯如下:
strConn .Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString())
您可以使用SqlCeConnectionStringBuilder類來解析現有的SQL緊湊的連接字符串。
你可以只建立連接,並從它那裏得到的數據源作爲一個屬性:
string data;
using (var conn = new SqlConnection(connectionString)) {
data = conn.DataSource;
}
+1因爲您給他定義目錄的屬性。 – Nix
我仍然需要查找| DataDirectory |別名。目前我知道它,但如何其他別名 - 如果任何 - 絕對路徑會很好.... –
是否有任何其他別名像| DataDirectory | ? –
有關的LocalDB和的SqlConnection(不符合CE):
public static string GetFilePathFromConnectionString(string connectionString)
{
var attachDbFileName = new SqlConnectionStringBuilder(connectionString).AttachDBFilename;
return attachDbFileName.Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString());
}
這將是很好的向他解釋什麼屬性包含他正在尋找的DataDirectory目錄。 – Nix
SqlCeConnectionStringBuilder.DataSource再次給出「| DataDirectory | \\ dbPerson.sdf」,而不是物理路徑。 –
@Nix:AppDomain.CurrentDomain.SetData(「DataDirectory」,path); –