2013-09-26 79 views
0

我有幾個數據庫位於本地網絡中的許多SQL Server(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

在這裏有一個貼子相關的帖子: 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)。