无法连接到SQL Server,但Excel和ODBCconfiguration可以

我有一个C#程序连接到SQL Server。 它在SQL Server 2012的testing计算机上正常工作,但在2008年的生产环境中无法正常工作。在生产环境中,它会报告exception,

未处理的exception:System.Data.SqlClient.SqlException:build立到SQL Server的连接时出现networking相关或站立特定的错误。 服务器未find或无法访问。 validation实例名称是否正确,并将SQL Serverconfiguration为允许远程连接。 (提供程序:命名pipe道提供程序,错误:40 – 无法打开连接到SQL Server) – – > System.ComponentModel.Win32Exception:访问被拒绝

这里是我的连接代码,

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

目标平台是x86,目标框架是4.5。 有趣的是,Excel和ODBCconfiguration可以连接到数据库没有抱怨。 C#程序是否使用不同的方式连接到SQL Server? 我该如何解决这个问题?

有很多可能的原因,您无法连接到SQL Server数据库。 这是一个很大的麻烦射击指南,以帮助您解决上述错误。

简述:

  1. SQL Server服务正在运行吗?
  2. SQL Server的TCP / IP设置是否已configuration?
  3. 防火墙设置是否允许SQL Server通过?
  4. SQL Server本身configuration是否允许远程连接?

其他事情要考虑

  1. sqlserver的值是否正确?
  2. 您用来连接到SQL Server的客户端协议(如“ Named Pipes )是否已启用?

在较新版本的SQL Server中被远程连接拒绝的最常见原因之一是SQL浏览器未打开。 它在安装后默认closures。 另一个常见的原因是你没有特定的协议(在这种情况下,网pipe)打开,但我会检查SQL浏览器,因为它可能是closures的。

可能是生产中的防火墙/安全限制 – 尝试针对本地SQL2008数据库运行,因为我只是针对SQL2008运行代码,它确实使用正确的sqlserver和sqldb参数,并更改下面的行(缺less;)

SqlConnection sqlConn = new SqlConnection(connStrSql);

试试这个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连接string

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

如果连接string有任何其他问题,请参阅本网站

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

MS SQL Server: http : //www.connectionstrings.com/sql-server/

谢谢,NB