2015-01-16 89 views
0

我寫了一個C#Windows窗體應用程序,它應該與溝通SQL Server數據庫。我設置了連接字符串,並且程序在我的系統中正常工作,而其他程序在連接到其他系統中的數據庫時失敗。連接到另一個系統中的SQL數據庫

由於此應用程序將安裝在客戶的PC中。我該如何解決這個問題?

我試過被添加的ConnectionString到配置文件的項目的最後一個辦法:

<?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <configSections> 
    </configSections> 
<connectionStrings> 

    <add name="con" 
     connectionString="Data Source=2345pc037\SQLEXPRESS;Initial Catalog=prodDB;Integrated Security=true" 
     providerName="System.Data.SqlClient"/> 

</connectionStrings> 

    <startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5" /> 
    </startup> 
</configuration> 

這裏是C#代碼:

SqlConnection cs = new SqlConnection(); 
      strConn = string.Format("{0}",ConfigurationManager.ConnectionStrings["con"].ConnectionString); 
      cs.ConnectionString = strConn; 

錯誤消息指出,無論哪種情況名不正確或SQL Server不允許遠程連接。另外:「錯誤:28 - 服務器不支持請求的協議。」

在此先感謝您的幫助!

+0

嗨,歡迎來到SO。請查看提問問題的指導原則。問「爲什麼這個代碼不工作?」沒有代碼或任何解釋性細節就是SO的主題。如果您添加重要細節,我們可以幫助您。 – theMayer

+0

在SQL啓用TCP/IP的配置管理器中。然後允許防火牆上的sqlbrowser和sqlserv應用程序(要找到.exe文件的正確路徑,請檢查您的實例的配置管理器屬性) – blfuentes

+1

哪個問題?你收到什麼錯誤信息?你的連接字符串是什麼?你有沒有指定正確的服務器地址和憑據?服務器是否偵聽TCP,防火牆上是否打開了正確的端口? –

回答

1

這裏有幾件事你可以檢查。

1)要檢查服務器是否允許遠程連接, 在SSMS中右鍵單擊服務器,單擊屬性,從左側單擊連接,確保選中「允許刪除到此服務器的連接」。

2)SQL Browser服務是否啓動?打開Sql Server配置管理器並檢查服務下的確認。

3)如果您在服務器上配置了防火牆,則需要將其配置爲允許連接到SQL Server(或者暫時關閉它以進行故障排除),否則您將收到此錯誤。

4)客戶端PC能否ping通SQL服務器。在命令窗口中輸入ping服務器名稱(即ping 2345pc037)。

5)確認客戶端可以連接到服務器。您可以通過在瀏覽器窗口中輸入\ severname(即\ 2345pc037)來完成此操作。

6)在SQL Server配置管理器,在SQL Server網絡配置,確保TCP/IP協議已啓用並配置爲偵聽正確的IP地址

7)連接字符串表明你使用集成安全性。確保客戶端PC上的用戶可以訪問服務器。 - 這不是什麼導致你的問題,但它可能會一旦你可以連接。

+0

非常感謝@Spock的全面評論。但我想知道客戶是否坐在獨立系統中。我的意思是我怎樣才能使這個數據庫文件連接到網絡外的計算機上的應用程序。 – AlanD

+0

所有這些要點適用於sql server的網絡安裝 – Spock

+0

的確如此!非常感謝!但是,你不是說這個連接字符串不能用於獨立系統嗎? – AlanD

相關問題