在运行时更改连接字符串
问题描述:
这是我在这里的第一篇文章,所以我很抱歉我对此做了任何错误。 我正在开发一个由其他人开发的Visual Basic项目,现在我的最终任务是创建一个面板,允许用户修复连接字符串到SQL数据库,如果它是错误的。我从下面创建面板,将当前连接字符串分解为服务器名称,用户名,密码和数据库名称。我想使保存按钮在My.Settings中更改此设置。如果我能够完成这项任务,我将深表感激,所以我们非常感谢任何帮助。另外,如果在运行时有任何其他方式更改连接字符串,那也是好的。 在此先感谢您的帮助,祝您有美好的一天! the panel I made在运行时更改连接字符串
答
最后我发现了如何处理它,下一个代码的作品。为了保存这些变化,我还必须重建项目。所以,代码是:
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密码文本框 –
欢迎来到Stack Overflow。您需要提供有关堆栈的更多详细信息,并提供您已经尝试过的代码示例。然后我们可以帮助你。你是否认真地使用vba与mysql?相当奇怪的组合!请详细说明你如何连接到数据库(给我们一个代码示例),以及你正在使用的是什么版本。你在Windows上开发吗?提供尽可能多的细节,并告诉我们你已经做了哪些研究。 –
我在开发Windows,VS 2015年时,SQL Server 2014的连接是通过我在My.Settings文件夹编辑后我加入了数据库连接字符串做,我访问它是这样的:'昏暗connStr = My.Settings。 TSCAN_MDFConnectionString',其中TSCAN_MDFConnectionString = “数据源=本地主机;初始目录= tScane;坚持安全信息= TRUE;用户ID =摘要;密码= ****;” –
你可能应该看一下connectionstringbuilder。 – peterG