会员: 密码:  免费注册 | 忘记密码 | 会员登录 网页功能: 加入收藏 设为首页 网站搜索  
 安全技术技术文档
  · 安全配制
  · 工具介绍
  · 黑客教学
  · 防火墙
  · 漏洞分析
  · 破解专题
  · 黑客编程
  · 入侵检测
 安全技术论坛
  · 安全配制
  · 工具介绍
  · 防火墙
  · 黑客入侵
  · 漏洞检测
  · 破解方法
  · 杀毒专区
 安全技术工具下载
  · 扫描工具
  · 攻击程序
  · 后门木马
  · 拒绝服务
  · 口令破解
  · 代理程序
  · 防火墙
  · 加密解密
  · 入侵检测
  · 攻防演示
技术文档 > Web开发 > ASP.Net
亲密接触ASP.Net(9)
发表日期:2003-06-26 00:00:00作者:� 出处:  

我们继续前面的内容,呵呵,这次主要是讲DataSet的强大功能啦:)。上次吹了大家的泡泡(说话不算数的意思,湖南人都能听懂吧:)),这次一定不能再食言了:)

在一个DataSet中储存多个数据表

我们在ASP中很多人习惯于使用RecordSet对象来操作数据库,但是RecordSet有一个的缺点就是一个RecordSet只能储存一个数据表,当我们需要操作多个表时,不得不在多个RecordSet中来回操作,虽然这些在使用习惯后也没有什么,但是对一个新手来说,这也是一个很麻烦人的事情。光是那些变量名就可以搞浑你,现在好了,在ASP.Net中,只需要一个DataSet就可以搞定一切。大大的方便了我们的程序。我们还是老样子,先看一段程序,再来细细讲解。

<% @ Page Language="C#" %>

<% @ Import Namespace="System.Data" %>

<% @ Import Namespace="System.Data.ADO" %>

<Script Language="C#" Runat="Server">

public void Page_Load(Object src,EventArgs e)

{

  //联结语句

  string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;";

  string strComm1 = "select * from UserList";

  string strComm2 = "select * from BookList";

  //打开一个联结

  ADOConnection MyConnection = new ADOConnection(MyConnString);

  //打开两个DataSetCommand

  ADODataSetCommand MyComm1 = new ADODataSetCommand(strComm1,MyConnection);

  ADODataSetCommand MyComm2 = new ADODataSetCommand(strComm2,MyConnection);

  DataSet MyDataSet = new DataSet();

  //把UserList,BookList表存入DataSet

  MyComm1.FillDataSet(MyDataSet,"UserList");

  MyComm2.FillDataSet(MyDataSet,"BookList");

  DataGrid1.DataSource = MyDataSet.Tables["UserList"].DefaultView;

  DataGrid2.DataSource = MyDataSet.Tables["BookList"].DefaultView;

  DataGrid1.DataBind();

  DataGrid2.DataBind();

}

</script>

<html>

<head>

<title></title>

</head>

<body>

<table>

<tr>

<td>

<ASP:DataGrid id="DataGrid1" runat="server"

BorderColor="black"

BorderWidth="1"

GridLines="Both"

CellPadding="3"

CellSpacing="0"

Font-Name="Verdana"

Font-Size="8pt"

HeaderStyle-BackColor="#aaaadd"

AlternatingItemStyle-BackColor="#eeeeee"

/>

</td>

<td>

<ASP:DataGrid id="DataGrid2" runat="server"

BorderColor="black"

BorderWidth="1"

GridLines="Both"

CellPadding="3"

CellSpacing="0"

Font-Name="Verdana"

Font-Size="8pt"

HeaderStyle-BackColor="#aaaadd"

AlternatingItemStyle-BackColor="#eeeeee"

/>

</td>

</tr>

</table>

</body>

</html>

在上面的例子中,我们打开了一个名为test.mdb的Access数据库,然后把他其中的两个表"UserList"和"BookList"使用两个DataGrid控件显示出来。显示的图片如下:

图9-1

我们现在来分析一下代码:

string MyConnString = "Driver={Microsoft Access Driver (*.mdb)}; DBQ=c:/test/test.mdb;";

string strComm1 = "select * from UserList";

string strComm2 = "select * from BookList";

ADOConnection MyConnection = new ADOConnection(MyConnString);

ADODataSetCommand MyComm1 = new ADODataSetCommand(strComm1,MyConnection);

ADODataSetCommand MyComm2 = new ADODataSetCommand(strComm2,MyConnection);

这些都只是在作一些准备工作,打开一个联结,并且打开两个DataSetCommand取得两个表的数据。

DataSet MyDataSet = new DataSet();

这是我们程序的关键之地,这里打开了我们要操作的DataSet对象。下面我们就需要将数据表的内容填入DataSet了。

MyComm1.FillDataSet(MyDataSet,"UserList");

MyComm2.FillDataSet(MyDataSet,"BookList");

这里是我们今天的主要内容。前面的几章曾经说过,在一个DataSet中可以包含多种数据,这里我们是往这个名为MyDataSet的DataSet中存放了两个数据库表,其实只要愿意,我们还可以在里面插入XML数据,而且他们是不会出现冲突的。大家可以放心使用,呵呵。

再下面的代码,就是把MyDataSet的数据传送给DataGrid控件显示。这里就不多说了。

这里我们只是简单的说了一下DataSet能存放多个数据表的功能,大家看看好像没有什么特别的。这里看起来确实好像没有什么特别的功能,但是如果配上DataSet中的修改、添加、删除功能,我们操作数据库就变得很简单。我们可以先将数据库读入DataSet,然后在DataSet中修改数据,如果改得觉得不满意,我们还可以使用RejectChanges方法全面恢复,最后一并交给去数据库去更新。

下一节,我们再来讲解,如何使用DataSet来添加,修改,删除数据。

【返回顶部】 【打印本页】 【关闭窗口】

关于我们 / 给我留言 / 版权举报 / 意见建议 / 网站编程QQ群   
Copyright ©2003- 2026 Lihuasoft.net webmaster(at)lihuasoft.net 加载时间 0.00137