C # - get file path from connection string

Is there an existing method in C # for extracting a file path from a string that represents a ConnectionString file in SqlCE .sdf? I want to check if the file exists during initialization and back up if the file was modified.

Connection string example:

 strConn = "Data Source=|DataDirectory|\dbAlias.sdf"; 
+4
source share
4 answers

Maybe a little late, but I came across this issue that is struggling with the same problem. Folder Location |DataDirectory| can be found in AppDomain.CurrentDomain.GetData("DataDirectory") . Thus, your connection string can be translated as follows:

 strConn .Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString()) 
+5
source

You can use the SqlCeConnectionStringBuilder class to parse an existing Sql Compact connection string.

+6
source

You can simply create a connection and get the data source from it as a property:

 string data; using (var conn = new SqlConnection(connectionString)) { data = conn.DataSource; } 
+5
source

For LocalDB and SqlConnection (not CE):

 public static string GetFilePathFromConnectionString(string connectionString) { var attachDbFileName = new SqlConnectionStringBuilder(connectionString).AttachDBFilename; return attachDbFileName.Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString()); } 
0
source

All Articles