C# - 从连接字符串获取文件路径

发布于 2024-11-28 01:30:24 字数 227 浏览 4 评论 0原文

C# 中是否有现有方法可以从表示 ConnectionString 的字符串中提取文件路径到 SqlCE .sdf 文件?我想在初始化时检查文件是否存在,如果文件被修改则备份它。

连接字符串示例:

strConn = "Data Source=|DataDirectory|\dbAlias.sdf";

Is there an existing method in C# to extract the file path from a string that represents a ConnectionString to a SqlCE .sdf file? I want to check if the file exists at initialization and back it up if the file has been modified.

Sample connection string:

strConn = "Data Source=|DataDirectory|\dbAlias.sdf";

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

染柒℉ 2024-12-05 01:30:24

您可以使用 SqlCeConnectionStringBuilder 类来解析现有的 Sql Compact 连接字符串。

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

江心雾 2024-12-05 01:30:24

也许有点晚了,但我在解决同样的问题时遇到了这个问题。您可以使用 AppDomain.CurrentDomain.GetData("DataDirectory") 查找 |DataDirectory| 文件夹的位置。所以你的连接字符串可以这样翻译:

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

A bit late perhaps, but I came across this question wile struggling with the same problem. You can find the location of the |DataDirectory| folder with AppDomain.CurrentDomain.GetData("DataDirectory"). So your connectionstring can be translated like this:

strConn .Replace("|DataDirectory|", AppDomain.CurrentDomain.GetData("DataDirectory").ToString())
尬尬 2024-12-05 01:30:24

您可以只创建连接并从中获取数据源作为属性:

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

You could just create the connection and get the data source from it as a property:

string data;
using (var conn = new SqlConnection(connectionString)) {
    data = conn.DataSource;
}
放飞的风筝 2024-12-05 01:30:24

对于 LocalDB 和 SqlConnection(不是 CE):

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

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());
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文