如何在运行时在App.config文件中保存连接字符串?

时间:2015-05-10 20:33:33

标签: c# vb.net app-config vb.net-2010

我试图在运行时将连接字符串保存在App.confing文件中,然后我在应用程序运行期间打开了文件,我发现连接字符串已保存在文件中,但在我之后关闭应用程序连接字符串已被自动删除。

你能帮我把连接字符串保存在app.config文件中吗? 我在表单中添加了两个文本框(txtServer和txtDatabase),并在用户单击时将一个按钮连接到数据库。

Imports System.Data.SqlClient
Imports System.Text
Imports System.Configuration
Imports System.Xml

Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
    Try
        Dim strConnectionStringName As String = "con"
        Dim Con As StringBuilder = New StringBuilder("Data Source=")
        Con.Append(txtServer.Text)
        Con.Append(";Initial Catalog=")
        Con.Append(txtDatabase.Text)
        Con.Append(";Integrated Security=SSPI;")
        Con.Append("User ID=username; Password=xyz;")

        Dim ConStringSettings As New ConnectionStringSettings(strConnectionStringName, Con.ToString)
        Dim Config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None)
        AddAndSaveOneConnectionStringSettings(Config, ConStringSettings)

        Catch ex As Exception
        MessageBox.Show(ConfigurationManager.ConnectionStrings("con").ToString() & _
            "This is invalid connection", "Incorrect server/Database.")
    End Try
End Sub

Public Sub AddAndSaveOneConnectionStringSettings(ByVal Config As Configuration, _
            ByVal ConStringSettings As ConnectionStringSettings)
    Dim ConStringsSection As ConnectionStringsSection = Config.ConnectionStrings
    ConStringsSection.ConnectionStrings.Add(ConStringSettings)
    Config.Save(ConfigurationSaveMode.Minimal)
    ConfigurationManager.RefreshSection("connectionStrings")
End Sub
End Class

1 个答案:

答案 0 :(得分:0)

我认为你只需要指定强制保存:

ConStringsSection.SectionInformation.ForceSave = True

请查看this post了解详情。