如何解决system.data.sqlclient.sqlexception(0x80131904)错误

时间:2014-02-19 09:11:19

标签: c# sql sql-server-2008

我使用C#和SQL Server 2008 R2在我的PC上创建了一个完美运行的应用程序。我的连接字符串是:

connectionString="Data Source=KELVIN-PC;Initial Catalog=LMS;User ID=sa;Password=temperament"

但我已将其发布并安装在另一台PC上。我还将LMS.bak文件复制到PC并在其上恢复了数据库MS SQL Server 2008 R2。但是,只要它必须连接到另一台机器上的数据库,它就会出现以下错误:

  

System.Data.SqlClient.SqlException(0x80131904):在建立与SQL Server的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确,以及SQL Server是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与SQL Server的连接).....

我花了好几个小时在互联网上搜索,但大多数回答的问题与我自己有一点不同,我尝试的一些建议并没有真正起作用。

3 个答案:

答案 0 :(得分:2)

您还需要更改连接字符串的DataSourceKELVIN-PC是本地计算机的名称,sql server正在默认实例上运行。

如果您确定服务器作为默认实例运行,您可以始终在DataSource中使用.,例如。

connectionString="Data Source=.;Initial Catalog=LMS;User ID=sa;Password=temperament"

否则,您需要指定服务器实例的名称,

connectionString="Data Source=.\INSTANCENAME;Initial Catalog=LMS;User ID=sa;Password=temperament"

答案 1 :(得分:1)

默认情况下是数据源。\ SQLEXPRESS(默认情况下放置数据库的实例)或者如果你在安装sql server期间更改了实例的名称,所以我建议你这样做:

connectionString="Data Source=.\\yourInstance(defaulT Data source is SQLEXPRESS);
       Initial Catalog=databaseName;
       User ID=theuser if u use it;
       Password=thepassword if u use it;
       integrated security=true(if u don t use user and pass; else change it false)"

不知道你的实例,我可以帮助解决这个问题。希望它有所帮助

答案 2 :(得分:0)

嗯,你做错了吗?你会详细介绍一下安装情况,但显而易见的是什么呢?

  • 检查SQL Server中其他服务器的网络配置。
  • 检查其他机器防火墙。 SQL Server不会自动打开端口,因此Windows防火墙通常会阻止访问..