【发布时间】:2009-06-30 15:25:48
【问题描述】:
我想允许我的用户在运行时在登录页面上的不同数据库之间切换。
我目前将 ConnectionString 存储在我的应用程序设置文件中,所有数据集都引用此设置。
我曾尝试在运行时修改此设置,但这似乎是不可能的。
最好的方法是什么?
【问题讨论】:
标签: .net winforms configuration connection-string
我想允许我的用户在运行时在登录页面上的不同数据库之间切换。
我目前将 ConnectionString 存储在我的应用程序设置文件中,所有数据集都引用此设置。
我曾尝试在运行时修改此设置,但这似乎是不可能的。
最好的方法是什么?
【问题讨论】:
标签: .net winforms configuration connection-string
您的配置文件中不能只有第二个连接字符串吗?你设置了什么样的数据访问代码?
【讨论】:
您可以通过在获取连接字符串之前调用ConfigurationManager.RefreshSection 来强制代码从磁盘中获取连接字符串:
ConfigurationManager.RefreshSection("connectionStrings");
string connectionString = ConfigurationManager.ConnectionStrings["someConnection"].ConnectionString;
【讨论】:
数据库是否加密?
如果不需要大量隐私,您可以按用户存储连接字符串。
例如:
System.Properties.Default.MyConnectionString = "Blah";
System.Properties.Default.Save();
或
string myConnectionString = System.Properties.Default.MyConnectionString;
编辑:这些最初可以通过转到项目 -> 属性 -> 设置在 VS 中设置,并确保将它们放在“用户”范围内(应用范围在运行时是只读的,除非我弄错了)。
EDIT2:关于以下评论:
SqlConnection myConnection = new SqlConnection();
//Set from a normal String saved in user's settings
myConnection.ConnectionString = System.Properties.Default.MyConnectionString;
myConnection.Open();
【讨论】:
properties.default中的connectiostring是只读的,怎么改?