ADO还是比较常用的,于是我研究了一下ADO内存数据对象,在这里拿出来和大家分享一下,希望对大家有用。ADO(ActiveX Data Object的简称)是Microsoft为***和***大的数据访问范例OLE DB而设计的,是一个便于使用的应用程序层接口。ADO通过OLE DB提供访问和操作数据库服务器中的数据。
ADO不仅可以访问关系型数据库,还可以访问非关系型数据库。同时由于OLE DB是基于COM接口的技术,使用这种技术可以直接对数据库的驱动程序进行访问,从而大大提供了访问速度。与众多的数据库编程接口比较,ADO具有易于使用、速度快、内存支出少和磁盘遗迹小等优点。
#T#但由于Microsoft并没有提供有关ADO的类,更不幸的是微软所提供的ADO文档几乎没有关于Visual C++的内容,这使得Visual C++程序开发人员要想利用ADO访问数据库相对比较麻烦。然而这又是每个Visual C++程序员不可回避的问题。解决这个问题的比较可行的办法就是自己编写这个类。ADO内存数据对象DataSet---从数据源中检索出的数据在内存中的缓存,包括表、行、列,还包含数据约束和关系数据是通过数据适配器从数据源进入到内存数据对象中的。
ADO内存数据对象SqlDataAdapter类使用SqlDataAdapter在数据库和DataSet之间架起桥梁:
- void UseDataAdapter()
- {
- //1 连接数据库
- //2 创建一个SqlDataAdapter对象
- SqlDataAdapter adapter = new SqlDataAdapter();
- //3 利用SqlDataAdapter查询数据,并把数据放在DataSet中
- SqlCommand selectCmd = new SqlCommand();
- selectCmd.Connection = myCon;
- selectCmd.CommandText = "SELECT SupplierID, CompanyName FROM Suppliers;";
- adapter.SelectCommand = selectCmd;
- DataSet dataSet = new DataSet("Suppliers");
- adapter.Fill(dataSet);//Fill数据
- Page.Response.Write("已连查询数据,并放入DataSet中<br />");
- //4 利用SqlDataAdapter对象操作语句
- //4.1 Update
- SqlCommand updateCmd = new SqlCommand();
- updateCmd.Connection = myCon;
- updateCmd.CommandText = "UPDATE Customers SET CompanyName='KFC' WHERE CustomerID = 'ALFKI'";
- adapter.UpdateCommand = updateCmd;
- //4.2 Delete
- SqlCommand deleteCmd = new SqlCommand();
- deleteCmd.Connection = myCon;
- deleteCmd.CommandText = "DELETE Customers WHERE CustomerID = 'ALFKI'";
- adapter.DeleteCommand= deleteCmd;
- //4.3 Insert
- SqlCommand insertCmd = new SqlCommand();
- insertCmd.Connection = myCon;
- insertCmd.CommandText = "INSERT INTO Customers(CustomerId) values ('ALFKI')";
- adapter.InsertCommand = insertCmd;
- //4.4 执行操作
- adapter.Update(dataSet);
- Page.Response.Write("已连操作数据,包括:修改、删除、插入<br />");
- //5 关闭数据库连接
- myCon.Close();
- Page.Response.Write("已关闭数据库<br />");
- }