2014-04-18 45 views
1

我有一個C#程序連接到SQL Server。它工作正常,在測試計算機與SQL Server 2012的,但是對生產環境與2008年在生產環境中無法正常工作,它會報告異常,因爲這樣,無法連接到SQL Server,但Excel和ODBC配置可以

Unhandled Exception: System.Data.SqlClient.SqlException: A network-related or in stance-specific error occurred while establishing a connection to SQL Server. Th e server was not found or was not accessible. Verify that the instance name is c orrect and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server) -- -> System.ComponentModel.Win32Exception: Access is denied

這裏是我的連接代碼,

connStrSql = "Server=" + sqlserver + "; Database=" + sqldb + "; Trusted_Connection=True"; 
SqlConnection sqlConn = new SqlConnection(connStrSql) 
sqlConn.Open(); 

目標平臺是x86,目標框架是4.5。有趣的是,Excel和ODBC配置可以連接到數據庫而不抱怨。 C#程序是否使用連接到SQL Server的不同方式?我該如何解決這個問題?

+0

你連接嘗試連接到SQL Server遠程? –

+0

是的,我應該嘗試不同的網絡庫,如tcp而不是默認的命名管道? – tabasco

+0

好的。 Excel是遠程的還是本地的SQL Server? –

回答

0

可能是生產防火牆/安全限制 - 嘗試運行鍼對本地SQL2008數據庫,因爲我只跑了反對SQL2008的代碼,它確實有一個正確的SQLSERVER和SQLDB參數工作,改變線下(失蹤)

SqlConnection sqlConn = new SqlConnection(connStrSql);

3

有很多可能的原因導致您無法連接到SQL Server數據庫。 This是一個很大的麻煩射擊指南,以幫助您解決上述錯誤。

簡述:

  1. 正在運行SQL Server服務?
  2. 是否配置了SQL Server TCP/IP設置?
  3. 防火牆設置是否允許SQL Server通過?
  4. 是否已配置SQL Server本身允許遠程連接?

考慮

  1. 其他的事情是正確的sqlserver的價值?
  2. 您用於連接到SQL Server的客戶端協議(如Named Pipes)是否已啓用?
+0

我相信sqlsever正在運行,因爲我可以在生產服務器上使用Excel來從該sqlserver獲取數據。最容易混淆的部分是,Excel完全適用於這種情況,但我的程序卻沒有。如果Excel工作,這不意味着sqlserver配置正確的遠程連接,爲什麼不應該我的程序。 – tabasco

2

遠程連接在較新版本的SQL Server中被拒絕的最常見原因之一是SQL瀏覽器未打開。它在安裝後默認關閉。另一個常見的原因是你沒有打開特定的協議(在這種情況下是網管),但我會首先檢查SQL瀏覽器,因爲它可能被關閉。

0

嘗試此SQL Server連接:

上連接附加數據庫文件到本地SQL Server Express實例

Server=.\SQLExpress;AttachDbFilename=C:\MyFolder\MyDataFile.mdf;Database=dbname; 
Trusted_Connection=Yes; 

附加數據庫文件,位於數據目錄,在連接到本地SQL Server Express實例

Server=.\SQLExpress;AttachDbFilename=|DataDirectory|mydbfile.mdf;Database=dbname; 
Trusted_Connection=Yes; 

試試這個Excel連接字符串

Provider=Microsoft.ACE.OLEDB.12.0;Data Source=c:\myFolder\myExcel2007file.xlsx; 
Extended Properties="Excel 12.0 Xml;HDR=YES;IMEX=1"; 

如果關於連接字符串的任何其他問題,請參閱本網站

MS-Excel中:http://www.connectionstrings.com/excel/

MS SQL服務器:http://www.connectionstrings.com/sql-server/

感謝, NB