2015-01-16 60 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

相关问题