2010-07-29 86 views
0

前段時間,我編寫了一個基於Web的留言簿應用程序,該應用程序編寫了自己的數據庫。獲取SQL Server的本地實例而不是命名實例

我的代碼是很業餘,但是,因爲這是我的第一個出版,我感到非常高興。 我發佈後大約一個月,我意識到我在代碼中犯了一個大錯。

我永遠只能連接到SQL Server的特定命名實例,它發生,我認爲,如果SQL Server實例具有比我指定一個不同的名稱,這是行不通的。因此,由於我的用戶可能不知道正在運行的SQL Server實例的名稱是什麼,我想添加一個字段,用戶可以指定它,如果他們這樣做會有所幫助,但如果他們不這樣做? 我的答案是獲取本地實例,無論名稱如何。

我試過Data Source=.\local;Data Source=.;和其他變體,但是毫無效果。

任何想法?

回答

0

非命名實例被稱爲「默認實例」,可以使用"Data Source=(local);..."訪問。

+0

我不認爲我試過一個,謝謝:)唯一的問題是我得到'無法打開到SQL Server'連接 – 2010-07-29 10:15:30

0

知道運行哪些實例的唯一方法是查詢SQL瀏覽器服務,如果它正在運行。 我猜你的大部分用戶正在運行SQL Server Express?如果是這樣,該服務稱爲本地\ SQLEXPRESS。如果不是,它是本地的或他們自己命名它。所以,我會先嚐試本地\ SQLEXPRESS,然後嘗試本地。如果沒有工作,只需拋出異常並要求用戶自行添加。

+0

最大的問題是,我永遠不可能知道自己的系統什麼(什麼版本他們正在運行的SQL Server包括在內)。 正如我所說的,我想爲用戶添加一個字段來鍵入他/她的SQL Server實例的名稱,但是如果他們不知道它的名字會怎麼樣? – 2010-07-29 12:19:02

+0

如果用戶不知道它是SQLExpress還是默認的。至少在99.9%的情況下:-) – 2010-07-29 13:02:43