第10章_ 访问其他数据源
在ADO.NET体系中,非常重要的组件就是.NET Data Provider,它负责建立与数据库之间的连接并执行数据操作。ADO.NET提供了多种.NET Data Provider,负责连接不同的数据库。在前面的章节中,通常使用的是SQL Server .NET Data Provider,使用其他的.NET Data Provider能够访问其他类型的数据库。
10.1_ 使用ODBC .NET Data Provider
ODBC(Open Database Connection,开放式数据互连)是访问数据库的一个统一的接口标准。在C++开发中,经常使用ODBC来与数据库互连,.NET同样提供了连接ODBC的方法。ODBC可以让开发人员通过API来访问多种不同的数据库,包括SQL Server、Access、MySql等。
10.1.1_ ODBC .NET Data Provider简介
ODBC(Open Database Connection,开放式数据互连)是访问数据库的一个统一的接口标准,它允许开发人员使用ODBC API(应用程序接口)来访问多种不同的数据源,并执行数据操作。
当使用应用程序时,应用程序首先通过使用ODBC API与驱动管理器进行通信。ODBC API由一组ODBC函数调用组成,通过API调用ODBC函数提交SQL请求,然后驱动管理器通过分析ODBC函数并判断数据源的类型。驱动管理器会配置正确的驱动器,然后将ODBC函数调用传递给驱动器。最后,驱动器处理ODBC函数调用,把SQL请求发送给数据源,数据源执行相应操作后,驱动器返回执行结果,管理器再吧执行结果返回给应用程序,如图10-1所示。
图10-1_ ODBC原理图
使用命名空间System.Data.Odbc才能够使用ODBC .NET Data Provider来访问ODBC数据源,并且支持对原有的ODBC驱动程序的访问。通过ODBC能够连接和执行数据操作,其访问方式和SQL Server .NET Data Provider相似,都需要先与数据源建立连接并打开连接,然后创建Command对象执行相应操作,最后关闭数据连接。
通过ODBC驱动程序访问数据源与SQL Server .NET Data Provider相同,ODBC .NET Data Provider同样包含Connection、Command、DataReader等类为开发人员提供数据的遍历和存取等操作,这些类和功能如下所示。
? OdbcConnection:建立与ODBC数据源的连接。
? OdbcCommand:执行一个SQL语句或存储过程。
? OdbcDataReader:与Command对象一起使用,读取ODBC数据源。
? OdbcDataAdapter:创建适配器,用来填充DataSet。
? OdbcCommandBuilder:用来自动生成插入、更新、删除等操作的SQL语句。
上述对象在ADO.NET中经常遇到,在前面的章节中,SQL Server .NET Data Provider同样包括这些对象,使用ODBC操作数据源的操作方法与SQL Server .NET Data Provider基本相同,使得开发人员无需额外的学习即可轻松使用。
10.1.2_ 建立连接
ODBC .NET Data Provider连接数据库有两种方法,一种是通过DSN连接数据库,第二种就是使用OdbcConnection对象建立与数据库的连接。
1.使用DSN的连接字符串进行连接
使用DSN(Data Source Name,数据源名)连接数据库,必须首选创建ODBC数据源,当创建一个ODBC数据源时,需要在管理工具中配置。在开始菜单中找到并打开【控制面板】,然后在【控制面板】中选择【管理工具】选项,在【管理工具】选项中选择【数据源(ODBC)】选项,选择后还需要选择【系统DSN】标签用于系统DSN的配置,如图10-2所示。
单击【添加】按钮,在弹出的对话框中选择合适的驱动程序,由于这里需要使用DSN连接ACCESS数据库,就需要选择ACCESS数据库的相应的驱动,这里选择【Microsoft Access Driver(*mdb)】选项,如图10-3所示。