Member 12723543 Ответов: 2

Как динамически ввести имя сервера моей базы данных в строку подключения


ConnectionString = "Data Source=LUSPOC-PC\LUSPOC;Initial Catalog=Sales_Inventory;Integrated Security=True"

это мой код для подключения vb.net к MS SQL server 2014. Можно ли ввести "LUSPOC-PC\LUSPOC" из моего графического интерфейса, чтобы его можно было использовать с разных серверов баз данных ? это да как ?

Что я уже пробовал:

ConnectionString = "Data Source=@SName;Initial Catalog=Sales_Inventory;Integrated Security=True"
Dim cmd As New SqlCommand
cmd.Parameters.AddWithValue("@SName", TextBox1.Text)

2 Ответов

Рейтинг:
11

Wendelius

Строка соединения-это просто строка. Вы можете извлечь строку подключения из файла конфигурации, решить ее на основе некоторых входных данных Пользователя или даже позволить пользователю ввести имя сервера базы данных.

Возможно, самый простой способ-это использовать Класс SqlConnectionStringBuilder (System. Data.SqlClient)[^]. Просто установите свойства так, как вам нравится, и используйте свойство ConnectionString для строки подключения SqlConnection.

Дополнительные сведения о хранении строки подключения в конфигурационных файлах см. Строки подключения и файлы конфигурации[^]

[ДОБАВЛЕН]
Похоже,вы обновили код, который пробовали. Основываясь на этом обновлении: вы не можете использовать параметры в строке подключения. Это не команда SQL или какая-либо другая команда.

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

В качестве примера рассмотрим следующее

Dim connstr As System.Data.SqlClient.SqlConnectionStringBuilder
connstr.InitialCatalog = "Sales_Inventory"
connstr.IntegratedSecurity = True
connstr.DataSource = TextBox1.Text
System.Windows.Forms.MessageBox.Show(connstr.ConnectionString)


Wendelius

См. дополнение в ответе.