Вы можете попробовать создать собственную строку подключения в коде.
Dim sqlConn As SqlClient.SqlConnection = New SqlClient.SqlConnection("server=" & my.Settings.Server & ";uid=" & txtUsername.Text & ";pwd=" & txtPassword.Text & ";database=" & txtDatabaseName.Text & ";Connect Timeout=150;MultipleActiveResultSets=True")
Так, например, если у вас была функция, которая возвратила значение, и вам нужно, чтобы она выполнялась с использованием ваших текущих значений в строке подключения, вы можете сделать что-то похожее на функцию ниже. (Код бессмыслен, но больше для того, чтобы показать вам, о чем я говорю)
Private Function GetFirstName(ByVal p_CustomerID As String) As String
Dim cmd As New SqlClient.SqlCommand
Dim sqlConn As SqlClient.SqlConnection = New SqlClient.SqlConnection("server=" & my.Settings.Server & ";uid=" & txtUsername.Text & ";pwd=" & txtPassword.Text & ";database=" & txtDatabaseName.Text & ";Connect Timeout=150;MultipleActiveResultSets=True")
Dim sReturnResult As String = String.Empty
With cmd
.Connection = sqlConn
.CommandText = "SELECT [FIRST_NAME] " _
& " FROM CUSTOMER " _
& " WHERE ID = @ID"
.Parameters.Add("@ID", SqlDbType.VarChar, 30)
.Parameters("@ID").Value = p_CustomerID
End With
Dim SQLAdapter As New SqlClient.SqlDataAdapter(cmd)
Dim ds As New DataSet
Try
SQLAdapter.Fill(ds, "CUSTOMER")
If ds.Tables(0).Rows.Count > 0 Then
sReturnResult = ds.Tables("CUSTOMER").Rows(0).Item("FIRST_NAME").ToString()
End If
Catch ex As Exception
MsgBox("GetFirstName: " & ex.Message)
Finally
ds.Dispose()
sqlConn.Dispose()
cmd.Dispose()
SQLAdapter.Dispose()
End Try
Return sReturnResult
End Function
Если у вас был строго типизированный DataSet, для которого вы хотите заменить адаптер таблицы, вы также можете сделать это аналогичным образом
Dim sqlConn As SqlClient.SqlConnection = New SqlClient.SqlConnection("server=" & my.Settings.Server & ";uid=" & txtUsername.Text & ";pwd=" & txtPassword.Text & ";database=" & txtDatabaseName.Text & ";Connect Timeout=150;MultipleActiveResultSets=True")
CUSTOMERTableAdapter.Connection = sqlConn
И последнее замечание: лично я никогда не ставлю флажок для сохранения строки соединения внутри DataSet. Я обнаружил, что если бы я сделал это по ошибке, самый простой способ решить эту проблему состоял в том, чтобы создать другой проект, создать идентичный DataSet и не выбирать сохранение строки подключения, а затем скопировать и вставить 3 или 4 файла поверх существующего проекта. DataSet (сначала создайте резервную копию), а затем заново откройте проект, выполните очистку и перестройку.