我使用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连接?
答案 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;