C#与Access数据库相关操作

上传人:pu****.1 文档编号:467765226 上传时间:2023-01-19 格式:DOCX 页数:17 大小:22.21KB
返回 下载 相关 举报
C#与Access数据库相关操作_第1页
第1页 / 共17页
C#与Access数据库相关操作_第2页
第2页 / 共17页
C#与Access数据库相关操作_第3页
第3页 / 共17页
C#与Access数据库相关操作_第4页
第4页 / 共17页
C#与Access数据库相关操作_第5页
第5页 / 共17页
点击查看更多>>
资源描述

《C#与Access数据库相关操作》由会员分享,可在线阅读,更多相关《C#与Access数据库相关操作(17页珍藏版)》请在金锄头文库上搜索。

1、C#对Access数据库的操作 下面以Access数据库为例说明,用C#的DataSet类访问数据库的一 些操作方法。操作涉及的主要C#类有:Dat aSe t:对应数据库表的一个集合,实际上是数据库表在内存中的一个缓存DataTable:对应数据库表,是数据库表行的集合DataRow:对应数据库表行OleDbConnection:建立数据库连接OleDbDataAdapter:由数据库生成DataSet,并负责DataSet与数据 库的同步OleDbCommandBuilder:生成更新数据库所需的指令DataSet、DataTable、DataRow用于数据在缓存中的操作,这上面的 操作只

2、有更新到数据库中,修改结果才会被永久保存。OleDbConnection 是用 OLEDB 方法连接数据库所必需的。OleDbDataAdapter 和 OleDbCommandBuilder 用来生成 DataSet,完成 数据库更新。与 OleDbDataAdapter 和 OleDbCommandBuilder 相对应, SqlDataAdapter 和 SqlCommandBuilder 也可以完成用 SQL 语言为指 令的数据库更新。假设在D:盘创建了 Access数据库,其路径为d:0DBAcsaccount.mdb,数据库中有一张名为kaizhi的数据库表。表结构如下:表名;Ka

3、izhi字段Field Name类型说明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对象对象与数据库中的数据,

4、这一点很重要,很多人忘 记了数据进行同步,结果往往是添加、修改的数据不能保存到数据库 中。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 DBlocatio

5、n;private OleDbConnection dbconn; /数据库连接private OleDbDataAdapter da;建立与数据库的连接,这里采用了 OLEDB方法:dbconn = newOleDbConnection(provider=microsoft.jet.oledb.4.0; DataSource=d:0DBAcsaccount.mdb);dbconn.Open();创建DataSet对象 da=newOleDbDataAdapter(select*fromkaizhi,dbconn);/引用数据库连接dbconn并依据SQL语句select * from kai

6、zhi创 建 OleDbDataAdapter 对象 daDataSet 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.G

7、etUpdateCommand(); /更新OleDbDataAdapter 对象 da 的指令 设计人员可以编写自己的更新指令,也可以象上面所写的那样用系统默认的指令。但不管怎样,上面的语句不能缺少,否则程序在运行中会抛出异常 System.InvalidOperationException,并提示:Updaterequires a valid InsertCommand when passed DataRow collection with new rows.DataRow drx =.Tables0.NewRow(); /创建一条新记录行drxkzren = kzren;drxkznam

8、e=kzname; drxriqi=2008-10-11;1 1 -1 1 drxshuoming=shuoming;drxzonge = 12;drxshuliang = 3;drxdanjia = 4;ds.Tables0.Rows.Add(drx); /在表中追加记录da.Update(ds); /更新数据库 要查询引用某记录的某字段,直接按如下的方法引用就可以了。String kx=ds.Tables0.Rows0kzren.ToString()连接access首先看一个例子代码片断:程序代码: using system.data;using system.data.oledb;str

9、ing strconnection=provider=microsoft.jet.oledb.4.0;strconnection+=data source=c:begaspnetnorthwind.mdb;oledbconnection objconnection=newoledbconnection(strconnection);objconnection.open();objconnection.close();解释:连接access数据库需要导入额外的命名空间,所以有了最前面的 两条using命令,这是必不可少的!st rconnec tion这个变量里存放的是连接数据库所需要的连接字符

10、 串,他指定了要使用的数据提供者和要使用的数据源.provider二microsof t.je t.oledb.4.0;是指数据提供者,这里使 用的是microsoft jet引擎,也就是access中的数据引擎, 就是靠这个和access的数据库连接的.da ta source二c:begaspne tnor thwind.mdb是指明数据源的位 置,他的标准形式是data source二mydrive:mypathmyfile.mdb.ps:1. +=后面的符号是防止将后面字符串中的解析为转义字2. 如果要连接的数据库文件和当前文件在同一个目录下,还可以使 用如下的方法连接:strconn

11、ection+=data source=; strconnection+=mappath(northwind.mdb); 这样就可以省得你写一大堆东西了!3. 要注意连接字符串中的参数之间要用分号来分隔.oledbconnection objconnection=newoledbconnec tion(s trconnec tion);这一句是利用定义好的连接字符串来建立了一个链接对象,以后对数据库的操作我们都要和这个对 象打交道.objconnection.open();这用来打开连接.至此,与access数据 库的连接完成.其余操作(插入,删除.)请参阅相关书籍连接 sql server例

12、子代码片断:程序代码:using system.data;using system.data.sqlclient; string strconnection=user id=sa;password=;strconnection+=initialcatalog=northwind;server=yoursqlserver;strconnection+=connect timeout=30;sqlconnection objconnection=newsqlconnection(strconnection); objconnection.open();objconnection.close();解

13、释:连接sql server数据库的机制与连接access的机制没有什么太大的区别,只是改变了 connection对象和连接字符串中的不同参数.首先,连接sql server使用的命名空间不是system.data.oledb,而是 sys tem.da ta.sqlclien t.其次就是他的连接字符串了,我们一个一个参数来介绍(注意:参数间 用分号分隔):user id=sa:连接数据库的验证用户名为sa.他还有一个别名 uid,所以这句我们还可以写成uid二sa.password二:连接数据库的验证密码为空.他的别名为pwd,所以 我们可以写为pwd二.这里注意,你的sql serve

14、r必须已经设置了需要用户名和密码来登 录,否则不能用这样的方式来登录.如果你的sql server设置为 windows登录,那么在这里就不需要使用user id和password这样 的方式来登录,而需要使用trusted_connection二sspi来进行登录.initial cat alog=nor thwind:使用的数据源为nort hwind 这个 数据库.他的别名为database,本句可以写成 database=northwind.server二yoursqlserver:使用名为yoursqlserver的服务器.他 的别名为data source,address,addr.如果使用的是本地数据 库且定义了实例名,则可以写为server=(local)实例名;如果是远 程服务器,则将(local)替换为远程服务器的名称或ip地址.connect timeout二30:连接超时时间为30秒.在这里,建立连接对象用的构造函数为:sqlconnec ti on.其余的就和 access 没有什么区别了!*1*1* *1* *1* vt* vt* vt* vt* vt* vt* vt* vt* vt* *X* vt* vt* vt* vt* vt* vt* vt* *X* vt* vt* vt* vt* vt* vt* vt

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 机械/制造/汽车 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号