从注册表LINQtoSQL获取连接字符串

本文关键字:连接 字符串 获取 LINQtoSQL 注册表 | 更新日期: 2023-09-27 18:14:53

我对如何获得存储在注册表中的connectionstring以供DataContext使用感到困惑。

我该怎么做?

public DataClassesDataContext() : 
            base(global::DDSTime.Properties.Settings.Default.DDSTimeConnectionString, mappingSource)
    {
        OnCreated();
    }

不使用Properties.Settings.Default.DDSTimeConnectionString,而是从注册表的值?

我想这样做,因为应用程序在不同的位置使用,我不想在配置文件中留下connectionstring让所有人看到。只需一个小脚本,所有的机器将插入connectionstring键在他们的注册表中,没有必要创建不同的"版本",因为每个位置使用自己的SQL Server现场。

从注册表LINQtoSQL获取连接字符串

如果您还没有合适的构造函数,那么创建一个这样的构造函数应该很容易:

public DataClassesDataContext(string connectionString) : 
        base(connectionString, mappingSource)
{
    OnCreated();
}

这意味着您需要在每次创建新的DataContext时传递connectionString。如果您愿意,可以将当前构造函数更改为类似

的内容。
private static string GetDefaultConnectionString()
{
    var connectionString = ... // Read value from registry
    if (String.IsNullOrEmpty(connectionString))
        connectionString = global::DDSTime.Properties.Settings.Default.DDSTimeConnectionString ;
    return connectionString;
}
public DataClassesDataContext() :
            base(GetDefaultConnectionString(), mappingSource)
{
    OnCreated();
}