2009-09-17 62 views
1

我有一个sqlconnection问题。当我使用sqldatasource时,我有完美的连接到sql server。 但是当我尝试使用SqlConnection对象抛出异常。Sql连接问题

string qstring = "Data Source=****;Initial Catalog=**;User ID=**;Password=**"; 
    SqlConnection con = new SqlConnection(qstring); 
    con.Open(); (exception thrown here) 

例外情况是:建立与SQL Server的连接时发生网络相关或实例特定的错误。服务器未找到或无法访问。验证实例名称是否正确,并将SQL Server配置为允许远程连接。 (供应商:命名管道提供商,错误:40 - 无法打开连接到SQL Server)

Sql服务器是在不同的机器,我可以使用SqlDataSource对象连接例如我可以通过这种方式绑定网格。但我必须用SqlConnection对象连接

连接字符串是正确的,因为我是从SqlDataSource的拥有它......

THX为你的帮助..

回答

0

如果你已经显示的代码是你必须再我不惊讶你无法连接。

您需要在qstring中拥有正确的数据源,用户名和密码。因为它代表星号字符并不意味着什么。

新点 另外一个经常被遗忘的问题是,SQLConnection只能与Microsoft SQL Server一起使用。如果您的SQL由不同的制造商提供,请改为使用OleDBConnection。

+0

我相信OP只是用占位符替换了他的实际值... – 2009-09-17 10:36:56

+0

我在想这可能是这种情况,但你永远无法确定。我曾经遇到过一个人,他们认为他们可以复制并粘贴一个完整的asterix密码字段。 – ChrisBD 2009-09-17 10:48:30

+0

@ChrisBD:这听起来像是来自Dilbert连环漫画的人:-) – 2009-09-17 12:31:56

3

您可能还想确保SQL Server设置为接受远程连接。 (对于sql2005配置工具 - >表面区域配置 - >服务和连接 - >数据库,本地和远程连接)

+0

,并且“命名管道”协议被激活和支持! – 2009-09-17 12:32:31

0

您的SQL服务器是否在同一台机器上?如果是,请检查SQL服务器服务是否正在运行,如果它位于不同的计算机上,请检查您的开发计算机是否已与其连接。您可以ping通该计算机以验证此情况。您也可以检查表面区域连接向导来检查SQL服务器是否支持远程连接,如snomag所示