2017-06-20 51 views
-1

這是我在這裏的第一篇文章,所以我很抱歉我對此做了任何錯誤。 我正在開發一個由其他人開發的Visual Basic項目,現在我的最終任務是創建一個面板,允許用戶修復連接字符串到SQL數據庫,如果它是錯誤的。我從下面創建面板,將當前連接字符串分解爲服務器名稱,用戶名,密碼和數據庫名稱。我想使保存按鈕在My.Settings中更改此設置。如果我能夠完成這項任務,我將深表感激,所以我們非常感謝任何幫助。另外,如果在運行時有任何其他方式更改連接字符串,那也是好的。 在此先感謝您的幫助,祝您有美好的一天! the panel I made在運行時更改連接字符串

+0

歡迎來到Stack Overflow。您需要提供有關堆棧的更多詳細信息,並提供您已經嘗試過的代碼示例。然後我們可以幫助你。你是否認真地使用vba與mysql?相當奇怪的組合!請詳細說明你如何連接到數據庫(給我們一個代碼示例),以及你正在使用的是什麼版本。你在Windows上開發嗎?提供儘可能多的細節,並告訴我們你已經做了哪些研究。 –

+0

我在開發Windows,VS 2015年時,SQL Server 2014的連接是通過我在My.Settings文件夾編輯後我加入了數據庫連接字符串做,我訪問它是這樣的:'昏暗connStr = My.Settings。 TSCAN_MDFConnectionString',其中TSCAN_MDFConnectionString = 「數據源=本地主機;初始目錄= tScane;堅持安全信息= TRUE;用戶ID =摘要;密碼= ****;」 –

+0

你可能應該看一下connectionstringbuilder。 – peterG

回答

0

最後我發現瞭如何處理它,下一個代碼的作品。爲了保存這些變化,我還必須重建項目。所以,代碼是:

Public Sub btSave_Click(sender As Object, e As EventArgs) Handles btSave.Click 
    Dim connectionString As String = String.Format("Data Source = " & txtServer.Text & " ; Initial Catalog = " & txtBD.Text & 
                " ; Persist Security Info = True; User ID = " & txtUser.Text & " ; Password = " & txtPassword.Text & " ;") 
    Dim builder As New SqlClient.SqlConnectionStringBuilder 
    builder.DataSource = txtServer.Text 
    builder.InitialCatalog = txtBD.Text 
    builder.UserID = txtUser.Text 
    builder.Password = txtPassword.Text 
    Try 
     Dim cnn_conn As New SqlClient.SqlConnection 
     cnn_conn.ConnectionString = builder.ConnectionString 
     If cnn_conn.State = ConnectionState.Closed Then 
      cnn_conn.Open() 
      Dim config As Configuration = ConfigurationManager.OpenExeConfiguration(ConfigurationUserLevel.None) 
      config.ConnectionStrings.ConnectionStrings("[name of your connection string]").ConnectionString = builder.ConnectionString 
      config.ConnectionStrings.ConnectionStrings("[name of your connection string]").ProviderName = "System.Data.SqlClient" 
      config.Save(ConfigurationSaveMode.Modified) 
      MessageBox.Show("String successfully saved", "Message", MessageBoxButtons.OK, MessageBoxIcon.Information) 
     End If 
    Catch ex As Exception 
     MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error) 
    End Try 
End Sub 

Private Sub btTest_Click(sender As Object, e As EventArgs) Handles btTest.Click 
    Dim connectionString As String = String.Format("Data Source = " & txtServer.Text & " ; Initial Catalog = " & txtBD.Text & 
                " ; Persist Security Info = True; User ID = " & txtUser.Text & " ; Password = " & txtPassword.Text & " ;") 
    Dim builder As New SqlClient.SqlConnectionStringBuilder 
    builder.DataSource = txtServer.Text 
    builder.InitialCatalog = txtBD.Text 
    builder.UserID = txtUser.Text 
    builder.Password = txtPassword.Text 
    Try 
     Dim cnn_conn As New SqlClient.SqlConnection 
     cnn_conn.ConnectionString = builder.ConnectionString 
     If cnn_conn.State = ConnectionState.Closed Then 
      cnn_conn.Open() 
      MsgBox("Conection set", MsgBoxStyle.Information, "Message") 
     End If 
    Catch ex As Exception 
     MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error) 
    End Try 
End Sub 
+0

txtServer是其中插入服務器的名稱的文本框,我不能改變它,txtBD是數據庫名稱,txtUser用戶和txtPassword密碼文本框 –

相關問題