System.Data.SqlClient和SQLNCLI10.1提供程序之间有什么区别?

时间:2011-08-22 16:36:16

标签: sql sql-server provider sqlclient

我正在将我的应用程序连接到SQL Server 2008数据库。

以下提供程序之间有什么区别:System.Data.SqlClient提供程序和SQLNCLI10.1(如果有)?

应该使用哪一个连接到SQL Server数据库?为什么?

谢谢,

2 个答案:

答案 0 :(得分:6)

System.Data.SqlClient是托管服务提供商。 SQLNCLI是OleDB提供商。这意味着它们和它一样独特。除了它们都连接到SQL Server之外,没有任何共同点。但使用完全不同且不相关的技术。在您的应用程序中,您应该在编写托管代码(.Net)时使用SqlCLient。 OleDB适用于本机应用程序(C ++)。

答案 1 :(得分:2)

我猜测唯一的区别是后者指定了一个特定版本(当代码从服务器移动到服务器或者软件更新触及该框时,可能存在也可能不存在)。前者只是说“获得当前版本”,在我看来更安全。

回到经典ASP时代,我依稀记得明确指定最新版本(例如Provider=SQLOLEDB.1)似乎比Provider=SQLOLEDB更好,但我不记得具体细节。我确实记得有些网络主机没有最新的东西,并且对更新版本的显式请求会失败,类似于“找不到提供者”。