2

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

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

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

谢谢,

4

2 回答 2

6

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

于 2011-08-22T18:17:18.687 回答
2

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

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

于 2011-08-22T16:47:18.780 回答