【问题标题】:Change connectionString dynamically动态更改连接字符串
【发布时间】:2018-09-20 15:52:38
【问题描述】:

我有一个 WinForm C# 应用程序,它使用需要通过 VPN 访问的 SQL 服务器,我们在服务器上的原始连接字符串是:

connectionString="Data Source=localhost;Initial Catalog=MyDB;user id=myuser;password=mypass"

此连接字符串位于 app.config 文件中

局域网中的每个人都可以访问应用程序并正常执行,现在当我们通过VPN连接时,与SQL数据库的连接不起作用(很明显因为连接字符串需要不同)

我们使用VPN连接时获得的IP可能并不总是相同所以我的问题是,我可以动态更改连接字符串以便用户在使用VPN时可以输入源吗?

谢谢

【问题讨论】:

  • 你说服务器上的连接字符串。这是安装在每个用户桌面上的 Windows 应用还是人们使用浏览器连接到的网络应用?
  • 这是一个 Windows 应用程序。用户从部署此应用程序的服务器中的共享文件夹执行此应用程序。
  • 你真的应该考虑获得一个内部 DNS 服务器,这样你就可以使用一致的主机名而不是 IP。

标签: c# winforms connection-string vpn


【解决方案1】:

使用 String.Format() 生成连接字符串。

string datasource = DatasourceTb.Text;  // get value from user input.
string catalog = "MyDB";
string username = "myuser";
string password = "mypass";

string connectionString = 
    String.Format("Data Source={0}; Initial Catalog={1}; User Id={2}, Password={3};",                           

                        datasource,
                        catalog,
                        username,
                        password
                    );

【讨论】:

  • 我忘了提到这是在 app.config 部分,所以我想在那里更改它
  • 使用SqlConnectionStringBuilder,无需使用字符串操作。它将确保正确生成字符串。
猜你喜欢
  • 2011-04-02
  • 1970-01-01
  • 2021-12-18
  • 1970-01-01
  • 1970-01-01
  • 2016-08-17
相关资源
最近更新 更多