Выбор между подключением DataSource C # - PullRequest
2 голосов
/ 24 марта 2011

В моих формах есть dataAdapter, dataSet и BindingSource для подключения к базе данных SQL для отображения данных в форме, и все это отлично работает.Однако мне нужно иметь 2 варианта того, к какому серверу подключаться.например, ISSP \ SQLEXPRESS и MY-WEB.Я не знаю, как это сделать, и задавался вопросом, может ли кто-нибудь помочь мне с тем, с чего начать?Спасибо :) Но при использовании переменных он говорит, что не может подключиться.

Я использую приведенный ниже код, но он говорит, что он не может подключиться, поэтому мне интересно, я повторюневерная переменная?

sqlConnectionNW.ConnectionString = "Data Source=@server;Initial Catalog=Northwind;Integrated Security=True";

Когда я изменяю код на следующий, он отлично работает.

sqlConnectionNW.ConnectionString = "Data Source=ISSP\SQLEXPRESS;Initial Catalog=Northwind;Integrated Security=True";

Ответы [ 3 ]

1 голос
/ 24 марта 2011

Должен быть перегружен DataAdapter, который принимает SqlConnection.Вы можете создать это вручную и передать его в свой адаптер данных при подключении, чтобы выбрать другие подключения.

Если вы загляните в свой dataset.designer.cs и найдете конструктор, вы увидите, что это то, чтоконструктор по умолчанию делает из ваших настроек приложений.

1 голос
/ 24 марта 2011

Сначала добавьте оба параметра подключения в файл конфигурации вашего приложения:

<connectionStrings>
    <add name="Test"
     connectionString="Data Source=ISSP\SQLEXPRESS;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"
     providerName="System.Data.SqlClient" />
    <add name="Production"
     connectionString="Data Source=MY-WEB;Initial Catalog=myDataBase;User Id=myUsername;Password=myPassword;"
     providerName="System.Data.SqlClient" />
</connectionStrings>

В вашем приложении добавьте ComboBox в форму и (в данном примере это называется uiConnection) и добавьте следующий код для его заполнения:

uiConnection.ValueMember = "Name";
foreach (ConnectionStringSettings con in ConfigurationManager.ConnectionStrings)
    {
        uiConnection.Items.Add(con);
    }

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

ConnectionStringSettings connection = uiConnection.SelectedItem as ConnectionStringSettings
string queryString = "SELECT CustomerID, CompanyName FROM dbo.Customers";
SqlDataAdapter adapter = new SqlDataAdapter(queryString, connection);
DataSet customers = new DataSet();
adapter.Fill(customers, "Customers");
1 голос
/ 24 марта 2011

Если данные одинаковы в обоих случаях, я думаю, что самый простой способ - просто изменить строку подключения и переключить ее, когда выбран другой параметр.

Пример: Data Source = "Server \ DBInstance"; Initial Catalog = "DatabaseName"; ID пользователя = "user"; Password = "password";

...