2015-05-10 6 views
0

Я попытался сохранить строку подключения в файле App.confing во время выполнения, затем я открыл файл во время приложения во время его запуска, и я обнаружил, что строка подключения была сохранена в файле, но после того, как я закрыл приложение соединило строку автоматически.Как сохранить строку подключения во время выполнения в файле App.config?

Можете ли вы помочь мне сохранить строку подключения в файле 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 

ответ

0

Я думаю, что вам нужно только указать силу сохранения:

ConStringsSection.SectionInformation.ForceSave = True 

Посмотрите на this post для получения дополнительной информации.

+0

Я попробовал ваше решение, но ничего не изменилось, строка подключения все еще удалена из файла app.config после закрытия приложения. – user3899176