前面我们已经说了如何操作数据库,但几乎全部是通过oledbcommand和oledbdatareader来做的,这次我们说说如何通过oledbdataadapter来操作数据库!关于oledbdataadapter的用法实际上我们在以前已经讲过了,由于oledbdataadapter是dataset和数据源之间建立联系的一个桥梁,而dataset用于对单层数据、xml 数据和关系数据进行存储、远程处理和编程!。
我们曾经讲过利用command来对数据库进行增加、删除和修改操作,但是我们利用dataset和dataadapter能够更加方便的对数据库进行操作,基本是我们可以认为dataset是专门为web而设计的,这也是ado.net和ado的一个重要的区别。
下面是dataset和sql数据的的关系图, 通过这个图我们可以看出dataset和dataadapter以及sql数据库的关系。
下面我们来讲解一下如何利用dataset和dataadapter来操作上据库
myconnection.open(); //打开数据库,请参考前面文章的内容
mycommand.connection = myconnection; //设置command,请参考前面文章的内容
mycommand. commandtext = “select * from admin”; //设置command,参考前面文章的内容
oledbdataadapter mydataadapter = new oledbdataadapter(); //定义oledbdataadapte对象
mydataadapter.selectcommand = mycommand; //设置oledbdataadapte对象的selectcommand属性
system.data.dataset mydataset = new system.data.dataset(); //定义dataset
mydataadapter.fill(mydataset,"admin"); //通过oledbdataadapte对象的selectcommand属性填充mydataset
myconnection.close(); //关闭数据库
整个过程分以下几步:
1.建立数据库连接(打开数据库,请参考前面文章的内容)
2.建立oledbdataadapter对象!
3.实例化oledbdataadapter对象!
4.建立一个dataset对象,执行sql语句得到的表添加到其中
5.关闭数据库连接
通过上面的步骤我们就可以使用databind将dataset中的数据绑定到特定的控件上了!(下一章我们将讲解如何邦定数据库)
我们说过但是我们可以利用dataset和dataadapter能够更加方便的对数据库进行操作,如何通过oledbdataadapter来执行数据库的操作的,我们只需要对dataset中的数据进行增加、删除、修改等操作,然后在将dataset提交给数据库即可
//利用利用dataset和dataadapter操作数据库
public boolean dodb()
{
myconnection.open(); //打开数据库,请参考前面文章的内容
mycommand.connection = myconnection; //设置command,请参考前面文章的内容
mycommand. commandtext = “select * from admin”; //设置command,参考前面文章的内容
oledbdataadapter mydataadapter = new oledbdataadapter(); //定义oledbdataadapte对象
mydataadapter.selectcommand = mycommand; //设置oledbdataadapte对象的selectcommand属性
system.data.dataset mydataset = new system.data.dataset(); //定义dataset
mydataadapter.fill(mydataset,"admin"); //通过oledbdataadapte对象的selectcommand属性填充mydataset
oledbcommandbuilder mycommandbuild = new oledbcommandbuilder(mydataadapter);//关联dataset和数据库的操作的,必不可少
foreach(datarow dr in mydataset.tables["admin"].rows)
{
if(dr["admin_code"].tostring().trim().equals("a"))
{
dr.delete(); //删除dataset 中的行
}
}
mydataset.tables["admin"].rows[0][0] = "ss";//更新dataset中第一行第一列的值
string [] dd = new string[3]{"a","b","v"};
mydataset.tables["admin"].rows.add(dd);//增加一行
mydataadapter.update(mydataset,"admin");//将dataset中”admin”表中的数据提交给数据库,完成数据库的更新
myconnection.close();//关闭数据库
}
这个程序和我们前面用到的利用command的delete、insert、update例程是执行同样的功能的,我这里改成了用mydataadapter来达到同样的效果!
要通过mydataadapter执行对数据库的操作,我们要有下面的几步:
1. 建立数据库连接myconnection
2. 实例化oledbdataadapter对象!
3. 建立一个dataset对象,并把执行select语句得到的记录添加到其中
4. 建立oledbcommandbuilder对象! 并让它与我们前面的oledbdataadapter对象关联!语句如下:oledbcommandbuilder mycommandbuild = new oledbcommandbuilder(mydataadapter);
5. 对dataset中包含表的特定记录进行增加、删除、修改
6. 执行oledbdataadapter对象的update命令更新数据库,语句如下: mydataadapter.update(ds,"notes");
7. 关闭数据库连接
总结:
dataset是ado.net中非常重要的内容,也是ado.net和ado的区别的一个重要表现,特别适合成批的数据操作,也是数据棒定的重要来源。oledbdataadapter是dataset和数据源之间建立联系的一个桥梁,要熟练的使用dataset我们需要熟练的掌握oledbdataadapter。下一章我们将讲述data
Java Asp PHP .Net XML C/C++ CGI VB Jsp J2ee J2se J2me EJB Servlet Tomcat Resin Struts Weblogic Eclipse ANT GUI JMS Web servise IDEA Webphere Hibernate Spring Jboss Applet Swing Socket Javamail Perl Ajax P2P 安全 模式 框架 测试 开源 游戏
Windows XP Windows 2000 Windows 2003 Windows Me Windows 9.x Linux UNIX 注册表 操作系统 服务器 应用服务器