【问题标题】:storing connection string information for Multiple SQL Server Database in WPF在 WPF 中存储多个 SQL Server 数据库的连接字符串信息
【发布时间】:2012-12-17 07:49:29
【问题描述】:

我首先有一个由实体框架代码备份的 wpf 应用程序。该应用程序允许用户创建新数据库并使用 wpf 屏幕处理它们。首先在实体框架代码中创建新数据库非常简单,这不是问题。但是,我正在努力寻找一种将特定 wpf 客户端与他正在处理的当前数据库相关联的体面方法。数据库连接字符串的构造如下。

providerConnectionString = "Server=" + serverName + ";" + "Database=" + databaseName +
            "; User Id = userId; Password = password; Persist Security Info=True;";

正如您在上面看到的,我必须在客户端计算机上的某个位置存储服务器、数据库名称、用户 ID 和密码,以便在客户端启动 wpf 应用程序时可以选择正确的数据库以供使用。为了增加一些复杂性,如果用户希望使用 wpf 应用程序,他可以从一个数据库切换到另一个数据库。在这种情况下,我将不得不重置上述四个连接字符串参数以指向新数据库。

我不想为 WPF 应用程序提供任何密码保护。上面写的所有内容仅适用于 SQL Server 数据库连接字符串。

总而言之,在可以从 wpf 应用程序动态添加新数据库的情况下,为特定 wpf 客户端存储 sql server 连接字符串信息的最佳方式是什么。

【问题讨论】:

    标签: wpf wpf-4.0


    【解决方案1】:

    如何在代码中存储默认连接,然后允许用户在 WPF 应用程序中更改连接详细信息,然后将其存储在独立存储中。因此,连接将针对每个 WPF 客户端用户。或者,如果您必须在第一个实例中进行设置 - 检查登录用户,然后找到数据库连接信息,然后将其存储在隔离存储中,以便后续代码访问。

    例如给这个对象添加一个键值对

    IsolatedStorageFile isolatedStorage = IsolatedStorageFile.GetUserStoreForAssembly();
    
    
    Dictionary<string,string> dict = new Dictionary<string,string>();
    

    添加到您的字典...

    IsolatedStorageFile isoStore = 
              IsolatedStorageFile.GetStore( IsolatedStorageScope.User 
              | IsolatedStorageScope.Assembly, null, null );
            Stream stream = new 
              IsolatedStorageFileStream(someFileName, 
              FileMode.Create, isoStore );
    
            if ( stream != null )
            {
                try
                {
                    // Serialize the object into the IsolatedStorage.
                    IFormatter formatter = new BinaryFormatter();
                    formatter.Serialize( stream, (Dictionary)dict);
                }
                finally
                {
                    stream.Close();
                }
            }
    

    【讨论】:

    • 这看起来很有希望。这里唯一的问题是,IsolatedStorage 没有可用的 Add(key, value) 选项,这意味着我必须使用标准 IO 类型 API 来存储和更新连接字符串参数。
    • 为什么不创建一个字典/哈希表,添加到它然后序列化.. 见编辑
    • 是的,我考虑了这些可能性,我认为我会创建一个单独的类来存储连接字符串参数,然后根据需要对独立存储文件进行序列化/反序列化,而不是使用字典。谢谢
    猜你喜欢
    • 2010-10-16
    • 1970-01-01
    • 2010-12-09
    • 1970-01-01
    • 2018-07-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-24
    相关资源
    最近更新 更多