2009-07-24 111 views
0

我有一個C#.Net 3.5可執行文件,它運行在本地機器上,並對運行SQL Server 2005的服務器進行數據庫調用。我已經使用數據源添加了一個系統DSN管理員在本地計算機上調用「localserver」(將驅動程序設置爲SQL Server)。當我創建DSN時,我可以成功測試與服務器的連接。Sql Server 2005本地主機系統DSN不能正常工作

我已將localserver添加到我的可執行文件中的連接字符串中,並且出現錯誤「建立與SQL Server的連接時發生網絡相關或實例特定錯誤。未找到服務器或無法訪問服務器(提供者:命名管道提供程序,錯誤:40 - 無法打開與SQL Server的連接)「

我正在連接的服務器確實允許遠程連接。當我將localserver替換爲服務器名稱時,它連接正常,但該程序將位於具有多個服務器名稱的多個位置,因此我需要使數據源變爲動態。

任何想法爲什麼會發生這種情況?

謝謝

亞倫

編輯:

我使用 「的LocalServer,1433」 我的數據源也試過,但我得到這個錯誤: 「網絡與SQL Server建立連接時發生的相關或特定於實例的錯誤服務器未找到或無法訪問確認實例名稱正確並且SQL Server配置爲允許遠程連接(提供程序:TCP提供程序,錯誤:0 - 沒有這樣的主機是已知的。)「

編輯:

謝謝您的答覆。爲了解決我的問題,我做了一個小方法來使用odbc連接來收集服務器名稱。

然後,我可以將servername發送到SqlConnection。再次感謝您的輸入。

回答

1

SqlClient(即SqlConnection)與ODBC完全無關。因此,在SqlClient連接字符串中使用ODBC數據源名稱將使您無處不在。

您可以在app.config中配置服務器名稱,並使用SqlConnectionStringBuilder構建連接字符串。在部署時,您可以適當地更改exe或用戶的.config文件。

0

正如Remus所說,DSN與SqlConnection無關。相反,使用此連接字符串:

http://www.connectionstrings.com/sql-server-2005#1

而且閱讀:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx

從上面的帖子摘錄:

To connect to a local computer, specify "(local)" for the server. If a server name is not specified, a connection will be attempted to the default instance on the local computer.

我會重複的SqlConnection無關用DSN做,

相關問題