Sql Server 2005 localhost系统DSN无法正常工作

时间:2009-07-24 16:20:22

标签: c# .net sql-server-2005

我有一个C#.Net 3.5可执行文件,它在本地计算机上运行,​​并对运行SQL Server 2005的服务器进行数据库调用。我在本地计算机上使用名为“localserver”的数据源管理器添加了一个系统DSN “(将驱动程序设置为SQL Server)。当我创建DSN时,我可以成功测试与服务器的连接。

我已将localserver添加到我的可执行文件中的连接字符串中,并且收到错误“建立与SQL Server的连接时发生了与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及SQL Server是否配置为允许远程连接。(提供程序:命名管道提供程序,错误:40 - 无法打开与SQL Server的连接)“

我连接的服务器允许远程连接。当我用服务器名称替换localserver时,它连接正常,但是这个程序将在多个服务器名称的位置,所以我需要使数据源动态。

有关为何发生这种情况的任何想法?

谢谢,

亚伦

修改

我也尝试使用“localserver,1433”作为我的数据源,但是我收到此错误: “建立与SQL Server的连接时发生与网络相关或特定于实例的错误。未找到服务器或无法访问服务器。验证实例名称是否正确以及SQL Server是否配置为允许远程连接。(提供程序: TCP提供程序,错误:0 - 没有这样的主机。)“

修改

感谢您的回复。为了解决我的问题,我做了一个小方法来使用odbc连接来收集服务器名。

然后我可以将servername发送到SqlConnection。再次感谢您的意见。

2 个答案:

答案 0 :(得分:1)

SqlClient(即SqlConnection)与ODBC完全无关。因此,在SqlClient连接字符串中使用ODBC数据源名称将使您无法快速完成。

您可以在app.config中配置服务器名称,并使用SqlConnectionStringBuilder构建连接字符串。在部署时,您可以适当地更改exe或用户的.config文件。

答案 1 :(得分:0)

正如Remus所说,DSN与SqlConnection无关。而是使用此连接字符串:

http://www.connectionstrings.com/sql-server-2005#1

另请阅读:

http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlconnection.connectionstring.aspx

摘自上述帖子:

  

要连接到本地计算机,   为服务器指定“(本地)”。如果一个   未指定服务器名称,a   将尝试连接到   本地的默认实例   计算机。

我会重复一遍,SqlConnection与DSN无关,