如何用OleDbDataAdapter来对数据库进行操作?
发布时间:2010-06-12 12:56:00
请问如何用OleDbDataAdapter来对数据库进行删除、修改和添加?
OleDbDataAdapter是DataSet和数据源之间建立联系的重要纽带。用它我们可以对数据库进行删除、修改和添加等操作,下面以删除(Delete)为例,说说操作步骤:
1、用OleDbConnection conn = getConn()语句建立数据库连接;
2、实例化OleDbDataAdapter对象,用select语句取得要删除的记录。而不是使用delete语句;
3、建立一个DataSet对象,并把执行select语句得到的记录添加到其中;
4、建立OleDbCommandBuilder对象,并与前面的OleDbDataAdapter对象关联,以监视RowUpdating事件的发生。在删除了指定的记录后,要通过执行OleDbDataAdapter对象的Update命令来更新数据库,语句如下:
OleDbCommandBuilder mybuilder = new OleDbCommandBuilder(myDataAdapter);
5、删除DataSet中包含表的特定记录
6、执行OleDbDataAdapter对象的Update命令更新数据库:
myDataAdapter.Update(ds,"notes")
7、关闭数据库连接。
以上操作步骤不仅适合于Delete操作,同样适合Insert、Update等操作。下面我们以通过OleDbDataAdapter来执行删除(Delete)特定的数据库记录为例,看看具体代码:
public Boolean DelNote(string delid)
//删除特定记录,通过string类型的ID删除字段
{
Boolean tempvalue=false;
try
{
OleDbConnection conn = getConn();
//连接数据库.getConn():得到连接对象
string selectstr = "select * from notes where id=" + delid;
OleDbDataAdapter myDataAdapter = new OleDbDataAdapter(selectstr,conn);
OleDbCommandBuilder mybuilder = new OleDbCommandBuilder(myDataAdapter);
//建立OleDbCommandBuilder
DataSet ds = new DataSet();
//建立DataSet()实例
myDataAdapter.Fill(ds,"notes");
foreach(DataRow dr in ds.Tables["notes"].Rows)
//由于在开始选择了所有的记录,此处用集合方式
{
if(dr["id"].ToString().Equals(delid))
{
dr.Delete();
}
}
myDataAdapter.Update(ds,"notes");
conn.Close();
tempvalue=true;
return(tempvalue);
//执行成功返回TRUE,否则返回FALSE
}
catch(Exception e)
{
throw(new Exception("噢,数据库删除出错:" + e.Message)) ;
}
}


猜你喜欢
- 脚本如下: drop table table1; CREATE TABLE `andrew`.`table1` ( `name` VARCH
- 一、re.compile 函数作用:compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match()
- 这两天接触了onmouseover事件和onmouseout事件,一直以为它们只是简单的分别实现鼠标指针移动到元素上时触发事件和在鼠标指针移
- pip install指定安装目录pip install一般会有默认的安装目录,可以通过python -m site进行查看,当然也可以对默
- 1. 模拟场景实现需求为玩家拥有多个英雄,在部署好英雄之后,只用点击进攻,不用关心每个英雄具体自己的攻击手段!2099/12/29 14:1
- 摘 要: 恢复丢失的数据库文件在很大程度上取决于所采用的备份策略。本文从恢复的灵活性出发,对Oracle8数据库的备份及恢复策略进行了探讨,
- 在采集美女站时,需要对关键词进行分词,最终采用的是python的结巴分词方法。中文分词是中文文本处理的一个基础性工作,结巴分词利用进行中文分
- 话说在楼猪理解和实践能力尚欠火候的时候,在这篇里曾经照搬了李战老师不少东西写在自己的博客里作为“知识储备”。这一次还是不能免俗。在翻到第5章
- threading.Event机制类似于一个线程向其它多个线程发号施令的模式,其它线程都会持有一个threading.Event的对象,这些
- 前言常见的图像任务通常需要把照片统一成相同的格式,所以此文章正是为了统一格式而生,常见的主要有cv2和PIL.Image的相关操作,照片格式
- 本地虚拟环境开发完成之后,上线过程中需要一一安装依赖包,做个记录如下:CentOS 安装python3.5.3wget https://ww
- 一、在webpack-dev-conf.js文件中:1、在const portfinder = require(‘portfinder
- 1、场景import { observe } from "./reactive";import Watcher from
- 本文实例讲述了python使用webbrowser浏览指定url的方法。分享给大家供大家参考。具体如下:这段代码提示用户输入关键词,通过we
- 前言Redis是一个开源的内存数据库,在项目开发中redis的使用也比较频繁,本文介绍了Go语言中go-redis库的基本使用。感兴趣的小伙
- 一、Array数组的更改array数组中修改的API示例如下://创建大量相同元素的数组//创建有10个String类型元素的数组,并且每个
- 直接参考以下实例,采用协程访问三个网站由于IO操作非常耗时,程序经常会处于等待状态比如请求多个网页有时候需要等待,gevent可以自动切换协
- by yemoo有时在编写网页代码时发现,img底部莫名奇妙多出大约3px的空白,无论怎么调节css都不可以,今天再次遇到此问题,网上看了一
- 前言Scrapy是一个开源的网络爬虫框架,Python编写的。最初设计用于网页抓取,也可以用来提取数据使用API或作为一个通用的网络爬虫。是
- 一. SQL2008卸载。1.从控制面板卸载1)点击计算机右下角“开始”,点击“控制面板”2)点击“卸载