OLE DB数据库访问指南

在.NET环境中,数据库的连接和查询是通过数据提供者来实现的。OLE DB.NET数据提供者通过System::Data::OleDb命名空间中的各种类来实现。本文将重点介绍其中的三个类:OleDbConnection、OleDbCommand和OleDbDataReader。

在开始之前,需要先做一些准备工作,例如创建一个MDB文件。

准备工作

首先,创建一个新的MS Access数据库,命名为test.mdb,并在其中创建一个名为'main'的表。然后,为'main'表添加两个字段:'Name'(文本类型)和'Age'(数字类型)。

将test.mdb文件复制到D盘根目录下。

.NET中的数据库连接和查询

在.NET中,数据库连接和查询是通过数据提供者实现的。OLE DB.NET数据提供者通过System::Data::OleDb命名空间中的类来实现。本文将重点介绍其中的三个类:OleDbConnection、OleDbCommand和OleDbDataReader。

OleDbConnection对象代表数据库连接。OleDbCommand对象封装了一个SQL命令,该命令在数据库连接上执行。当对数据库表执行INSERT或UPDATE查询时,只需要这两个类。但是,当从表中检索数据时,还需要使用OleDbDataReader类。这个类允许以只向前的顺序浏览记录集。

插入记录的代码片段

// 创建OleDbConnection对象,并将其与数据库关联 OleDbConnection* conn = new OleDbConnection( "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb" ); // 打开数据库连接 conn->Open(); // 创建一个OleDbCommand对象,并将其与SQL命令和OleDbConnection对象关联 OleDbCommand* cmd = new OleDbCommand(sqlstr, conn); // 执行SQL命令 cmd->ExecuteNonQuery(); // 关闭数据库连接 conn->Close();

插入记录是两个过程中较简单的一个。使用OleDbConnection对象创建一个连接,创建一个OleDbCommand对象,并将其与OleDbConnection对象关联。然后,调用ExecuteNonQuery方法,该方法将执行传递给OleDbCommand构造函数的SQL命令。然后关闭连接。

读取记录的代码片段

// 创建OleDbConnection对象,并将其与数据库关联 OleDbConnection* conn = new OleDbConnection( "PROVIDER=Microsoft.Jet.OLEDB.4.0;Data Source=d:\\test.mdb" ); // 打开数据库连接 conn->Open(); // 创建一个OleDbCommand对象,并将其与SQL读取查询和连接关联 OleDbCommand* cmd = new OleDbCommand(sqlstr, conn); // 获取OleDbDataReader对象以浏览记录集 OleDbDataReader* rdr = cmd->ExecuteReader(); // 继续向前读取记录 while (rdr->Read()) { // 使用各种可用的方法读取数据 // 例如:GetValue, GetValues, Item等 Console::WriteLine(rdr->get_Item("FullName")); } // 关闭数据库连接 conn->Close();

这基本上与创建OleDbConnection和OleDbCommand对象相同。但是,不直接调用ExecuteNonQuery,而是调用ExecuteReader,它将返回一个OleDbDataReader对象。可以使用这个OleDbDataReader对象浏览记录集。继续调用Read方法,当它完成整个记录集时,将返回false。有几种方法可以从记录集中读取,但喜欢使用get_Item,因为它允许指定字段名称,而不是像GetValue这样的其他函数,需要传递表中字段的索引,这在看来是一个不好的方法。

沪ICP备2024098111号-1
上海秋旦网络科技中心:上海市奉贤区金大公路8218号1幢 联系电话:17898875485