2

我在我的 Windows 7 上安装了 MS VS 2010,但是我没有安装 SQL Server Native 客户端。

加载 Visual Studio 后,我确实单击菜单 Data / Transact-SQL Editor / New Query Connection。

将出现 SQL Server 2008 R2 登录对话框,我输入服务器名称,选择 SQL Server 身份验证,输入用户名和密码,然后单击连接。连接已建立,编辑器窗口出现,我可以查询了!

我了解 SQL Server 2008 本机客户端文件是 sqlncli10.dll、sqlnclir10.rll。我确实在整个硬盘驱动器中搜索了这些文件,但没有找到。

那么,如果我没有安装本机客户端,Visual Studio 2010 如何连接到 SQL Server 2008?

VS 2010 在连接到 SQL Server 2008 时是否使用 .NET Framework 程序集?

4

3 回答 3

1

.NET Framework 已经包含 Sql Server(和其他)数据库客户端。看看 System.Data.SqlClient

于 2011-10-19T16:53:31.027 回答
0

如果未安装本机客户端,则 Visual Studio 2010 在通过菜单 Data/Transact-SQL Editor/New Query Connection 连接时使用 .NET Framework 4.0 版连接到 SQL Server 2008 R2。

我验证它正在加载程序集 System.Data.dll (位于C:\Windows\Microsoft.NET\Framework\v4.0.30319 下)以建立与服务器的连接。

我还没有为 SQL Server 2008 R2 安装本机客户端 10.0,而且我现在没有使用它,但是如果安装了本机客户端文件(sqlncli10.dll、sqlnclir10.rll 和 s10ch_sqlncli.chm),应该可以在下面找到

%SYSTEMROOT%\system32\

作为 SQL Server 安装的一部分安装。

还有一个名为 sqlncli.msi 的可再发行安装程序,应该可以在 SQL Server 安装 CD 下找到

%CD%\Setup\

安装细节参考

http://msdn.microsoft.com/en-us/library/ms131321.aspx

以及 SQL Server 2008 R2 Native Client 功能的参考

http://msdn.microsoft.com/en-us/library/ms131456.aspx

于 2011-11-08T19:58:21.070 回答
0

这里的关键信息是:

您无需在客户端计算机(在本例中为 Visual Studio 所在的开发框)上安装 SQL Server Native Client,以便使用 ADO.Net 的应用程序连接到 SQL Server。

原因正如@dknaack 所说:.Net 框架包含建立连接所需的代码。这包含在 System.Data.SqlClient 中。

另一方面,非托管应用程序使用 SQL Native Client 通过 OleDB 或 ODBC 提供程序连接到 SQL Server。

简而言之:

System.Data.SqlClient - 用于从托管代码到 SQL Server 的连接,即 ADO.Net 连接 SQL Server Native Client - 用于从非托管代码到 SQL Server 的连接

虽然您可以使用 SQL Server Native Client 从托管应用程序连接到 SQL Server,但这不是推荐的做法:

如果您正在开发新的应用程序,建议您考虑使用 ADO.NET 和 SQL Server 的 .NET Framework 数据提供程序而不是 SQL Server Native Client 来访问 SQL Server 最新版本的所有新功能。

参考资料: https ://docs.microsoft.com/en-us/sql/relational-databases/native-client/sql-server-native-client-programming?view=sql-server-2017

https://docs.microsoft.com/en-us/sql/relational-databases/native-client/applications/using-ado-with-sql-server-native-client?view=sql-server-2017

于 2018-09-07T00:16:48.517 回答