C#中是否有现有方法从表示ConnectionString
到SqlCE
.sdf 文件的字符串中提取文件路径?我想检查文件是否在初始化时存在,如果文件已被修改则备份它。
示例连接字符串:
strConn = "Data Source=|DataDirectory|\dbAlias.sdf";
答案 0 :(得分:6)
您可以使用SqlCeConnectionStringBuilder类来解析现有的Sql Compact连接字符串。
答案 1 :(得分:5)
您可以创建连接并从中获取数据源作为属性:
string data;
using (var conn = new SqlConnection(connectionString)) {
data = conn.DataSource;
}
答案 2 :(得分:5)
也许有点晚了,但是我遇到了这个问题,并且在努力解决同样的问题。您可以使用|DataDirectory|
找到AppDomain.CurrentDomain.GetData("DataDirectory")
文件夹的位置。所以你的connectionstring可以像这样翻译:
strConn .Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString())
答案 3 :(得分:0)
对于LocalDB和SqlConnection(不是CE):
public static string GetFilePathFromConnectionString(string connectionString)
{
var attachDbFileName = new SqlConnectionStringBuilder(connectionString).AttachDBFilename;
return attachDbFileName.Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString());
}