使用OleDbConnection失败连接到SQL

时间:2015-05-27 13:51:22

标签: c# sql .net sql-server

我使用OleDbConnection连接到远程SQL数据库但它失败了。

var connection = new OleDbConnection
{
    ConnectionString = "Provider=SQLOLEDB;server=MyRemoteIPAddress;Initial Catalog=MyDatabase;User ID=sa;Password=MyPassword"
};

try
{
    connection.Open();
    connection.Close();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}

我得到的错误是:[DBNETLIB] [ConnectionOpen(Invalid Instance())。]连接无效。

但是,如果我使用SqlConnection进行连接,则连接正常。

var testConnection = new SqlConnection
{
    ConnectionString = "server=MyIPAddress;database=MYDatabase;user id=MyUser;pwd=MyPassword"
};

try
{
    testConnection.Open();
    testConnection.Close();
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}

为什么我可以通过SqlConnection而不是OleDbConnection连接?

3 个答案:

答案 0 :(得分:1)

环境未聚集,但显式指定端口解决了问题。

这有效:

“Provider = SQLOLEDB; server = MyRemoteIPAddress,1433; Initial Catalog = MyDatabase; User ID = sa; Password = MyPassword”

答案 1 :(得分:0)

尝试使用执行所有必需功能的服务器端代码。这样您的应用程序就不会直接与远程数据库通信。请我帮忙。

答案 2 :(得分:0)

使用OLEDB时应指定端口1433

Provider=SQLOLEDB;server=MyRemoteIPAddress,1433;Initial 
Catalog=MyDatabase;User ID=sa;Password=MyPassword;