如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
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:\0DBAcs\account.mdb,数据库中有一张名为kaizhi的数据库表。表结构如下:表名;Kaizhi字段FieldName类型说明1开支IDkzID长整型自动编号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#系统类usingSystem;usingSystem.Collections.Generic;usingSystem.Text;usingSystem.IO;usingSystem.Data;usingSystem.Data.OleDb;usingSystem.Data.SqlClient;声明DataOper类中的公共变量privatestringDBlocation;privateOleDbConnectiondbconn;//数据库连接privateOleDbDataAdapterda;建立与数据库的连接,这里采用了OLEDB方法:dbconn=newOleDbConnection(@"provider=microsoft.jet.oledb.4.0;DataSource=d:\0DBAcs\account.mdb");dbconn.Open();创建DataSet对象da=newOleDbDataAdapter(@"select*fromkaizhi",dbconn);//引用数据库连接dbconn并依据SQL语句"select*fromkaizhi"创建OleDbDataAdapter对象daDataSetds=newDataSet();//创建DataSet对象da.Fill(ds);//用OleDbDataAdapter对象da填充、更新刚创建的DataSet对象添加记录并更新数据库OleDbCommandBuildercb=newOleDbCommandBuilder(da);//创建OleDbCommandBuilder对象cb用于更新OleDbDataAdapter对象da的Insert、Delete、Update指令da.UpdateCommand=cb.GetUpdateCommand();//更新OleDbDataAdapter对象da的指令设计人员可以编写自己的更新指令,也可以象上面所写的那样用系统默认的指令。但不管怎样,上面的语句不能缺少,否则程序在运行中会抛出异常System.InvalidOperationException,并提示:UpdaterequiresavalidInsertCommandwhenpassedDataRowcollectionwithnewrows.