【asp精品源码栏目提醒】:以下是网学会员为您推荐的asp精品源码-C++对Access操作方法 简单教程 - 编程语言,希望本篇文章对您学习有所帮助。
C对 Access 数据库的操作下面以 Access 数据库为例说明,用 C的 DataSet 类访问数据库的一些操作方法。
操作涉及的主要 C类有:DataSet:对应数据库表的一个集合,实际上是数据库表在内存中的一个缓存DataTable:对应数据库表,是数据库表行的集合DataRow:对应数据库表行OleDbConnection:建立数据库连接OleDbDataAdapter:由数据库生成 DataSet并负责 DataSet 与数据库的同步OleDbCommandBuilder:生成更新数据库所需的指令DataSet、DataTable、DataRow 用于数据在缓存中的操作,这上面的操作只有更新到数据库中,修改结果才会被永久保存。
OleDbConnection 是用 OLEDB 方法连接数据库所必需的。
OleDbDataAdapter 和 OleDbCommandBuilder 用来生成 DataSet,完成 与数据库更新。
OleDbDataAdapter 和 OleDbCommandBuilder 相对应,SqlDataAdapter 和 SqlCommandBuilder 也可以完成用 SQL 语言为指令的数据库更新。
假设在 D:盘创建了 Access 数据库,其路径为d:0DBAcsaccount.mdb,数据库中有一张名为 kaizhi 的数据库表。
表结构如下:表名;Kaizhi 字段 Field Name 类型 说明1 开支 ID kzID 长整型 自动编号2 开支人 Kzren 文本 50 字符3 开支项目名 kzname 文本 50 字符4 日期 riqi 日期/时间 99-99-99;0 掩码5 开支说明 shuoming 文本 225 字符6 总金额 zonge 单精度 小数点任意;这项开支的总 花费7 数量 shuliang 长整型8 单价 Danjia 单精度 小数点任意表建好之后:(1)对表中添加新数据(2)查询表中的某个字段。
为了实现这两项功能,以下几个问题要考虑:1 准备工作声明必须的公共变量建立与数据库的连接,创建 DataSet 对象2 添加记录在 DataSet 对象上添加记录同步 DataSet 对象对象与数据库中的数据,这一点很重要,很多人忘记了数据进行同步,结果往往是添加、修改的数据不能保存到数据库中。
3 查询数据库表中某记录的某字段;我们可以将上述功能用一个类 DataOper 实现,下面是程序设计的主要活动。
声明要用的 C系统类using Systemusing System.Collections.Genericusing System.Textusing System.IOusing System.Datausing System.Data.OleDbusing System.Data.SqlClient声明 DataOper 类中的公共变量private string DBlocationprivate OleDbConnection dbconn //数据库连接private OleDbDataAdapter da建立与数据库的连接,这里采用了 OLEDB 方法:dbconn newOleDbConnectionprovidermicrosoft.jet.oledb.4.0 DataSourced:0DBAcsaccount.mdbdbconn.Open创建 DataSet 对象da new OleDbDataAdapterselect from kaizhi dbconn //引用数据库连接 dbconn 并依据 SQL 语句select from kaizhi创建 OleDbDataAdapter 对象 daDataSet ds new DataSet //创建 DataSet 对象da.Fillds //用 OleDbDataAdapter 对象 da 填充、更新刚创建的DataSet 对象添加记录并更新数据库 OleDbCommandBuilder cb new OleDbCommandBuilderda // 创建 OleDbCommandBuilder 对象 cb 用于更新 OleDbDataAdapter 对象da 的 Insert、Delete、Update 指令 da.UpdateCommand cb.GetUpdateCommand //更新OleDbDataAdapter 对象 da 的指令设计人员可以编写自己的更新指令,也可以象上面所写的那样用系统默认的指令。
但不管怎样,上面的语句不能缺少,否则程序在运行中会抛出异常 System.InvalidOperationException,并提示:Updaterequires a valid InsertCommand when passed DataRow collectionwith new rows.DataRow drx ds.Tables0.NewRow //创建一条新记录行 drxkzren kzren drxkznamekzname drxriqi2008-10-11 drxshuomingshuoming drxzonge 12 drxshuliang 3 drxdanjia 4 ds.Tables0.Rows.Adddrx //在表中追加记录 da.Updateds //更新数据库要查询引用某记录的某字段,直接按如下的方法引用就可以了。
String kxds.Tables0.Rows0kzren.ToString连接 access首先看一个例子代码片断:程序代码