2013-09-26 4 views
0

У меня есть несколько баз данных, расположенных во многих SQL-серверах (2008) в локальной сети. Все эти базы данных имеют одинаковую структуру и таблицы, единственная разница между ними - это данные. Мне нужно программное обеспечение, которое, когда пользователи вводят адрес определенного сервера с именем пользователя и паролем, программное обеспечение имеет право войти на этот сервер и получать данные с этого сервера.Подключение к нескольким SQL-серверам

Если я использую строки соединения, как это:

string server_address = "..."; 
string database = "..."; 
string username = "..."; 
string password = "...";   
string connectString = "Data Source=" + server_address + ";Initial Catalog= " + database + ";uid= " + username + ";pwd= " + password + "\""; 
SqlConnection conn = new SqlConnection(connectString); 
conn.Open(); 
.... 
conn.Close(); 

я могу управлять моей проблемы с этим типом связи.

Однако я использую LINQ для извлечения данных, а строка подключения хранится в файле «app.config». Итак, как я могу изменить эту строку в этом файле? Например, моя текущая строка тестовое соединение app.config является:

<connectionStrings> 
<add name="MyProgram.Properties.Settings.TestDatabaseConnectionString" 
connectionString="Data Source=172.16.1.73;Initial Catalog=TestDatabase;uid=sa;pwd=1" 
providerName="System.Data.SqlClient" /> 
</connectionStrings> 

я запускаю это в моем компьютере только для тестирования, но когда эта программа запускается на другом компьютере, пользователи должны ввести адрес сервера «172,16. 1.xxx ", имя пользователя и пароль. Как я могу изменить программу в файле app.config?

Заранее спасибо.

+0

Можете ли вы описать симптом, а не ваш надуманный ответ? Я бы поспорил, что это можно было бы решить более эффективно, если бы мы лучше поняли проблему. –

+0

Есть сообщение в stackoverflow, связанном с этим: http://stackoverflow.com/questions/15759631/using-entity-framework-with-multiple-ms-sqlserver-databases – KrishnaDhungana

ответ

0

Я думаю, вы можете сделать что-то вроде этого:

// Northwnd наследует от System.Data.Linq.DataContext.

Northwnd nw = new Northwnd(@"northwnd.mdf"); 

// или, если вы не используете SQL Server Express

Northwnd nw = new Northwnd("Database=Northwind;Server=server_name;Integrated Security=SSPI"); 

(пример из MSDN).

Смежные вопросы