2014-04-18 44 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