C# 如何操作app.config文件中的connectionstring?
我正在尝试在运行时设置C# 如何操作app.config文件中的connectionstring?,c#,connection-string,app-config,application-settings,C#,Connection String,App Config,Application Settings,我正在尝试在运行时设置connectionstring。我需要的是在运行时设置datasource,然后重新启动应用程序。我在google中找到了一些方法,但问题是app.config在Application.Restart()之后返回默认值 我试图在settings.cs和app.config中同时保存connectionstring,但对我无效。 这是我的代码: public void setConnectionString() { try {
connectionstring
。我需要的是在运行时设置datasource
,然后重新启动应用程序。我在google中找到了一些方法,但问题是app.config
在Application.Restart()之后返回默认值代码>
我试图在settings.cs
和app.config
中同时保存connectionstring
,但对我无效。
这是我的代码:
public void setConnectionString()
{
try
{
string str = string.Empty;
str = string.Format(@"Data Source={0}; Initial Catalog=CRM01_DB; UID= {1}; PWD={2}", Default.DataSource, Default.UID, Default.UPass);
this["CRM01_DBConnectionString"] = str;
Default.Save();
Thread.Sleep(100);
var config = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None);
var connectionStringsSection = (ConnectionStringsSection)config.GetSection("connectionStrings");
connectionStringsSection.ConnectionStrings["CRM01_DBConnectionString"].ConnectionString = str;
config.Save();
ConfigurationManager.RefreshSection("connectionStrings");
Thread.Sleep(100);
}
catch (System.Exception ex)
{
System.Windows.Forms.MessageBox.Show(ex.Message);
}
我没有收到任何错误,但当应用程序启动时,connectionstrig
具有默认值如果您从VS测试此代码,它可能无法工作(并且可能无法工作)
从VS运行时,实际执行的程序是.vshost.exe
,相应的.config
文件名为.vshost.exe.config
,您应该在那里检查更改
但是
VS保持原始的.config
和.vshost.exe.config
同步,这样您就看不到更改
要测试代码是否工作,请从外部VS尝试它,或取消选中启用Visual Studio宿主进程的(属性->调试)(请记住它已启用)
如果从VS测试此代码,它可能不起作用(也可能不起作用)
从VS运行时,实际执行的程序是.vshost.exe
,相应的.config
文件名为.vshost.exe.config
,您应该在那里检查更改
但是
VS保持原始的.config
和.vshost.exe.config
同步,这样您就看不到更改
要测试代码是否工作,请从外部VS尝试它,或取消选中启用Visual Studio宿主进程的(属性->调试)(请记住它已启用)
@mohammadboluki我确实试过了。工作起来像一个机器人charm@mohammadboluki我确实试过了。很有魅力