2014-09-12 67 views
0

有人可以幫我嗎?如何通過代碼找到連接字符串sql服務器不屬性

每當我切換計算機,我必須再次複製連接字符串。我不想這樣做。有沒有其他方法可以找到它?我正在使用Visual Studio 2013和C#。

我已將應用程序保存在閃存驅動器中,因此我可以在任何計算機上使用它。但它只適用於我的電腦。

con = new SqlConnection(@"Data Source=(LocalDB)\v11.0;AttachDbFilename=H:\DataBaseApp\DataBaseApp\DB.mdf;Integrated Security=True"); 
con.Open(); 

這就是我正在使用的,但如果有人告訴我如何不使用這個,我將不勝感激。

+0

您的閃存驅動器是否總是被安裝爲所有使用該驅動器的計算機上的'H:'驅動器? – 2014-09-12 20:46:27

回答

0

1)創建連接字符串屬性

2)連接字符串添加到Web配置。 DataSource應該像TestDataBase這樣的別名。

3)從web配置值填充連接字符串屬性。

4)在名爲TestDataBase的當前PC上添加Sql Alias。

當你轉到另一臺PC時,你應該只配置新的SQL別名。

在這種情況下,多個用戶可以在不更改代碼的情況下工作(示例源代碼管理)。

0

您可以將連接字符串保存在任何文本文件中,例如:conn.txt並將其放在bin \ Debug文件夾中。現在,您可以使用此代碼在運行時讀取它。

string path = Path.Combine(Application.StartupPath, "conn.txt"); 
string connStrg = System.IO.File.ReadAllText(path); 
using (SqlConnection cnn = new SqlConnection(connStrg)) 
{ 
    ... 
} 

當您發佈您的應用程序時,您需要在應用程序的安裝位置創建該文件。我的意思是,如果您的應用程序安裝在任何特定的驅動器,如D:\\MyFolder\\MyApp.exe那麼您的conn.txt文件應創建在D:\\MyFolder

+0

但是當我將改變PC路徑也將改變,我再次必須複製連接字符串。 – 2014-10-14 14:05:25

+0

我想自動獲得連接字符串 – 2014-10-14 14:05:51

+0

hmm ..在這種情況下,您需要找出可用的sql server。如果有多於一個,則只需選擇一個。你可以檢查這個[回答](http://stackoverflow.com/a/10781356/3761928)知道如何找出可用的sql server。對於sql認證,動態連接可能有不同的id-password。因此,如果您嘗試連接網絡服務器,則必須使用Windows身份驗證連接數據庫,並且可能無法在不創建命名管道的情況下連接服務器。 – Shell 2014-10-15 03:24:52

相關問題