2012-02-28 235 views
0

我想通过使用连接字符串的代码连接到远程数据库(SQL Server 2008)。但我无法连接到它。但是我可以使用SQL Server身份验证成功地使用SQL Server Management Studio连接数据库。sql连接字符串问题

但每当我使用的代码,我得到异常喜欢::

[DBNETLIB] [ConnectionOpen(无效的实例())。]无效的连接尝试。

我的连接字符串是这样的:

Data Source=192.x.x.x;Initial Catalog=mydbName;User ID=user;Password=passw;provider=SQLOLEDB 

任何人能帮助我。

在此先感谢。

+0

防火墙是否在服务器上正确设置?你使用有效的凭证吗?你的代码是怎样的?确保远程连接设置为TCP/IP。 (在Sql Server配置管理器中找到) – Alex 2012-02-28 06:14:09

+1

你使用这个连接字符串的应用程序是什么?最后一部分('provider = SQLOLEDB')不应该在那里,如果你从.NET这样做... – 2012-02-28 06:18:56

回答

6

你不显示你用来连接的C#代码 - 但我认为问题在于提供者。如有可能,请使用System.Data.SqlClient程序集中的本机 SQL客户端接口连接到SQL Server。

你可以试试这个连接串来代替:

Data Source=192.x.x.x;Initial Catalog=mydbName;User ID=user;Password=passw; 

在你的配置:

<configuration> 
    <connectionStrings> 
    <add name="MyConnStr" 
      connectionString="Data Source=192.x.x.x;Initial Catalog=mydbName;User ID=user;Password=passw;" /> 
    </connectionStrings> 
</configuration> 

,然后使用此代码片段:

string connectionString = ConfigurationManager.ConnectionStrings["MyConnStr"].ConnectionString; 

using(SqlConnection conn = new SqlConnection(connectionString)) 
{ 
    .... 
} 

Connection Strings网站的tons有效连接示例字符串以及所有这些选项的含义。

+1

谢谢你链接工程完美我得到了答案,我需要提到的IP,端口连接我的远程数据库。 This Help Me :: Data Source = 190.190.200.100,1433; Network Library = DBMSSOCN; Initial Catalog = myDataBase; User ID = myUsername; Password = myPassword; – 2012-02-28 06:18:04

+1

如果端口是1433(或者命名实例*和*浏览器服务正在运行),则该端口不应该是必需的。你确定修复不是简单地删除'Provider ='部分吗?您是否尝试了没有端口说明符的新连接字符串? – 2012-02-28 06:24:54

+0

@AaronBertrand,我删除了提供程序,但它仍然显示错误,当我尝试在提供程序前面写入System.Data.SqlClient时,它也显示了错误。但是,Ip和Port组合在我的case.thanks for每一个回应。欢呼:) – 2012-03-05 10:07:21