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:\0DBAcs\account.mdb,数据库中有一张名为kaizhi的数据库表。表结构如下:
简单实用
表建好之后:(1)对表中添加新数据(2)查询表中的某个字段。为了实现这两项功能,以下几个问题要考虑: 1准备工作
声明必须的公共变量
建立与数据库的连接,创建DataSet对象 2添加记录
在DataSet对象上添加记录
同步DataSet对象对象与数据库中的数据,这一点很重要,很多人忘记了数据进行同步,结果往往是添加、修改的数据不能保存到数据库中。
3查询数据库表中某记录的某字段;
我们可以将上述功能用一个类DataOper实现,下面是程序设计的主要活动。
声明要用的C#系统类 using System;
using System.Collections.Generic;
简单实用
using System.Text; using System.IO; using System.Data; using System.Data.OleDb; using System.Data.SqlClient;
声明DataOper类中的公共变量 private string DBlocation;
private OleDbConnection dbconn; //数据库连接 private OleDbDataAdapter da;
建立与数据库的连接,这里采用了OLEDB方法: dbconn = new
OleDbConnection(@"provider=microsoft.jet.oledb.4.0; Data Source=d:\0DBAcs\account.mdb"); dbconn.Open();
简单实用
创建DataSet对象
da = new OleDbDataAdapter(@"select * from kaizhi", dbconn); //引用数据库连接dbconn并依据SQL语句"select * from kaizhi"创建OleDbDataAdapter对象da
DataSet ds = new DataSet(); //创建DataSet对象
da.Fill(ds); //用OleDbDataAdapter对象da填充、更新刚创建的DataSet对象
添加记录并更新数据库
OleDbCommandBuilder cb = new OleDbCommandBuilder(da); // 创建OleDbCommandBuilder对象cb用于更新OleDbDataAdapter对象da的Insert、Delete、Update指令
da.UpdateCommand = cb.GetUpdateCommand(); //更新OleDbDataAdapter对象da的指令
设计人员可以编写自己的更新指令,也可以象上面所写的那样用系统默认的指令。但不管怎样,上面的语句不能缺少,否则程序在运行中会抛出异常System.InvalidOperationException,并提示:Update
简单实用
requires a valid InsertCommand when passed DataRow collection with new rows.
DataRow drx = ds.Tables[0].NewRow(); //创建一条新记录行
drx["kzren"] = "kzren"; drx["kzname"]="kzname"; drx["riqi"]=2008-10-11; drx["shuoming"]="shuoming"; drx["zonge"] = 12; drx["shuliang"] = 3; drx["danjia"] = 4;
ds.Tables[0].Rows.Add(drx); //在表中追加记录 da.Update(ds); //更新数据库
简单实用
要查询引用某记录的某字段,直接按如下的方法引用就可以了。 String kx=ds.Tables[0].Rows[0]["kzren"].ToString()
连接access
首先看一个例子代码片断: 程序代码:
-------------------------------------------------------------------------------- using system.data; using system.data.oledb; ......
string strconnection="provider=microsoft.jet.oledb.4.0;"; strconnection+=@"data source=c:\begaspnet\northwind.mdb"; oledbconnection objconnection=new oledbconnection(strconnection);
简单实用
......
objconnection.open(); objconnection.close(); ......
-------------------------------------------------------------------------------- 解释:
连接access数据库需要导入额外的命名空间,所以有了最前面的两条using命令,这是必不可少的!
strconnection这个变量里存放的是连接数据库所需要的连接字符串,他指定了要使用的数据提供者和要使用的数据源.
"provider=microsoft.jet.oledb.4.0;"是指数据提供者,这里使用的是microsoft jet引擎,也就是access中的数据引擎,就是靠这个和access的数据库连接的.
"data source=c:\begaspnet\northwind.mdb"是指明数据源的位置,他的标准形式是"data source=mydrive:mypath\myfile.mdb". ps:
1."+="后面的"@"符号是防止将后面字符串中的"\"解析为转义字
简单实用
符.
2.如果要连接的数据库文件和当前文件在同一个目录下,还可以使用如下的方法连接:
strconnection+="data source=";
strconnection+=mappath("northwind.mdb"); 这样就可以省得你写一大堆东西了!
3.要注意连接字符串中的参数之间要用分号来分隔. "oledbconnection objconnection=new
oledbconnection(strconnection);"这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对象打交道.
"objconnection.open();"这用来打开连接.至此,与access数据库的连接完成.其余操作(插入,删除...)请参阅相关书籍 连接sql server 例子代码片断: 程序代码:
--------------------------------------------------------------------------------
简单实用
using system.data;
using system.data.sqlclient; ...
string strconnection="user id=sa;password=;"; strconnection+="initial
catalog=northwind;server=yoursqlserver;"; strconnection+="connect timeout=30"; sqlconnection objconnection=new sqlconnection(strconnection); ...
objconnection.open(); objconnection.close(); ...
-------------------------------------------------------------------------------- 解释:
连接sql server数据库的机制与连接access的机制没有什么太大的
…… 此处隐藏:3781字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [专业资料]《蜜蜂之家》教学反思
- [专业资料]过去分词作定语和表语1
- [专业资料]苏州工业园区住房公积金贷款申请表
- [专业资料]保安管理制度及处罚条例细则
- [专业资料]2018年中国工程咨询市场发展现状调研及
- [专业资料]2015年电大本科《学前教育科研方法》期
- [专业资料]数字信号处理实验 matlab版 离散傅里叶
- [专业资料]“十三五”重点项目-虎杖白藜芦醇及功
- [专业资料]2015-2020年中国竹木工艺市场需求及投
- [专业资料]国际贸易理论与实务作业五:理论案例分
- [专业资料]财政部修订发布事业单位会计制度
- [专业资料]BCA蛋白浓度测定试剂盒(增强型)
- [专业资料]工程进度总计划横道图模板(通用版)
- [专业资料]七年级地理同步练习(天气与气候)
- [专业资料]X光安检机介绍火灾自动报警系统的组成
- [专业资料]衢州市人民政府办公室关于印发衢州市区
- [专业资料]经济全球化及其影响[1]
- [专业资料]质粒DNA限制性酶切图谱分析
- [专业资料]国家安全人民防线工作“六项”制度
- [专业资料]劳动力投入计划及保证措施
- 电子账册联网监管培训手册
- 人教版语文七年级上第1课《在山的那边
- 对我区担保行业发展现状的思考与建议
- 平面四边形网格自动生成方法研究
- 2016年党课学习心得体会范文
- 如何设置电脑定时关机
- 全球最美人妖排行榜新鲜出炉
- 社会实践调查报告及问卷
- Visual Basic习题集
- 《鱼我所欲也》课件2
- 浙江省会计从业资格考试试卷
- 全遥控数字音量控制的D 类功率放大器资
- 鞍钢宪法与后福特主义
- 电表的改装与校准实验报告(1)
- 2014年高考理科数学真题解析分类汇编:
- Windows 7 AIK 的使用
- 风电场全场停电事故应急处置方案
- 化工原理选填题题库(下)
- 关于产学研合作教育模式的学习与思考
- 西安先锋公馆项目前期定位报告




