我正在将我的应用程序连接到 SQL Server 2008 数据库。
以下提供程序之间有什么区别:System.Data.SqlClient 提供程序和 SQLNCLI10.1(如果有)?
应该使用哪一个连接到 SQL Server 数据库,为什么?
谢谢,
我正在将我的应用程序连接到 SQL Server 2008 数据库。
以下提供程序之间有什么区别:System.Data.SqlClient 提供程序和 SQLNCLI10.1(如果有)?
应该使用哪一个连接到 SQL Server 数据库,为什么?
谢谢,
System.Data.SqlClient
是托管提供商。SQLNCLI
是一个 OleDB 提供程序。这意味着它们是不同的。实际上,除了它们都连接到 SQL Server 之外,没有任何共同点。但是使用完全不同且不相关的技术。在您的应用程序中,您应该在编写托管代码 (.Net) 时使用 SqlCLient。OleDB 用于本机应用程序 (C++)。
我猜唯一的区别是后者指定了一个特定的版本(随着代码从服务器移动到服务器或软件更新等触及盒子,它可能存在也可能不存在)。前者只是说“获取当前版本”,在我看来更安全。
回到经典的 ASP 时代,我依稀记得明确指定最新版本(例如Provider=SQLOLEDB.1
)似乎比仅仅指定最新版本更好,Provider=SQLOLEDB
但我不记得具体细节了。我确实记得一些网络主机没有最新的东西,并且对更新版本的明确请求会在那里失败,类似于“未找到提供者”。