亲密接触ASP.Net(9)

asp.net

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

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

我们在ASP中很多人习惯于使用RecordSet对象来操作数据库,但是RecordSet有一个的缺
点就是一个RecordSet只能储存一个数据表,当我们需要操作多个表时,不得不在多个Re
cordSet中来回操作,虽然这些在使用习惯后也没有什么,但是对一个新手来说,这也是
一个很麻烦人的事情。光是那些变量名就可以搞浑你,现在好了,在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来添加,修改,删除数据。

时间: 2025-01-27 13:27:36

亲密接触ASP.Net(9)的相关文章

亲密接触ASP.Net(16) Cookie

Cookie Cookie的用法也和ASP中差不多.比如我们建立一个名为aspcn,值为飞刀的cookie HttpCookie cookie = new HttpCookie["aspcn"];cookie.Value = "飞刀";Response.AppendCookie(cookie); 我们取出Cookie值也很简单 HttpCookie cookie = Request.Cookies["aspcn"];cookieValue = c

亲密接触ASP.Net(15) 状态保存

ASP.Net中状态保存 在ASP保存一些共享.个人状态,使用的是Application.Session.Cookie这三种.呵呵.在ASP.Net中M$除了继承Application等外,又给我们新的一种状态变量信息State,它是用来保存WEB控件的状态的变量,很新鲜吧,一定要快点知道啦:) 不好意思,飞刀还是从原始一步步来说吧.先从Application讲起.(台下一片吼声),没有办法,为了有个阶梯性,还是不应当过早接触新东东啦:) Application 在ASP.Net中Applica

亲密接触ASP.Net

asp.net     ASP+出来都快半年了,我们站点也做了不少的介绍,但是今天飞刀我才终于有了心思来写一下关于这个ASP+的文章了.呵呵,让大家久等了.      首先我得申明,本教程适用于有一定网络编程经验的人,比如asp,PHP,CGI,JSP开发者,如果你对网络编程一点也不了解,那么您还是先去学学其它的语言,不然以下的文章您会有很多看不懂的地方.呵呵.      我们开始吧.      ASP+的运行环境      我们要学习ASP+,就先得搞一个调试环境出来.让你的"爱鸡"

亲密接触ASP+(1)

ASP+出来都快半年了,我们站点也做了不少的介绍,但是今天飞刀我才终于有了心思来写一下关于这个ASP+的文章了.呵呵,让大家久等了. 首先我得申明,本教程适用于有一定网络编程经验的人,比如asp,php,cgi,jsp开发者,如果你对网络编程一点也不了解,那么您还是先去学学其它的语言,不然以下的文章您会有很多看不懂的地方.呵呵. 我们开始吧. ASP+的运行环境 我们要学习ASP+,就先得搞一个调试环境出来.让你的"爱鸡"支持asp+,那么您需要以下的条件: Windows 2000

亲密接触ASP.Net(1) ASP+的配制环境

ASP+出来都快半年了,我们站点也做了不少的介绍,但是今天飞刀我才终于有了心思来写一下关于这个ASP+的文章了.呵呵,让大家久等了. 首先我得申明,本教程适用于有一定网络编程经验的人,比如asp,php,cgi,jsp开发者,如果你对网络编程一点也不了解,那么您还是先去学学其它的语言,不然以下的文章您会有很多看不懂的地方.呵呵. 我们开始吧. ASP+的运行环境 我们要学习ASP+,就先得搞一个调试环境出来.让你的"爱鸡"支持asp+,那么您需要以下的条件: Windows 2000

亲密接触ASP.Net(2) ASP+的语法

上一节 ,我们简单介绍了ASP+的配制环境,我们这一节来谈谈ASP+的语法.其实当你装好NGWS后,他所带的文档是最好的学习ASP+的教程,要你E文足够好,以及很好的耐性,学习ASP+不是难事啦.我们这些家伙也是从这里学了很多的,这篇关于ASP+语法的文章,大多数也来自于M$的原文,最可惜的就是我们的服务器不能装上NGWS,有些例子,大家不能看到执行结果,不太好.不过有些地方,我会把执行结果显示出来的.我们开始这一节吧:) 一个ASP+页面的后缀名是".ASPX".它能够包含八种不同的

亲密接触ASP.Net(3) asp+中的控件

最近有朋友问我,哪里可以学好ASP+,我早就说过NGWS中带的文档是最好的学习手册,不过由于NGWS的要求太高,还有它的大小(110M)的问题,有一部分兄弟,不能装上它,我给你们一个站点http://www.aspnextgen.com/quickstart/aspplus/ ,上面的文档就是NGWS直接带的,而且这个站点全是由asp+构建的,大家可以直接看到aspx的执行情况,我现在对我们的站点唯一不满的地方就是不能执行aspx,不能给大家看到例程的执行结果. 好了不说多话了,我们这一节要来看

亲密接触ASP.Net(4) WEB控件

WEB控件按照计划我们这一节要谈Web控件,我想了半天也不知道如何定义这个web控件,它比html控件难于理解,毕竟HTML太像原来我们熟悉的东东了.而web控件确与我们平常见到的有很大的出入,不知道大家还记不记得我说过的一句话,那就是ASP.net的程序就像是写VBVC中的窗口,先再这些窗口中加入我们的需要的控件,然后再对这些控件进行操作.如果你学过一点点VBVC的编程,那么理解这个就不难了,ASP.net中的web控件就像是VBVC中的控件一样.我们先在页面中摆好这些控件,然后再通过Page

亲密接触ASP.Net(5) DataBind数据核心

这一节主要是要讲DataBind,这个在ASP.net中是很重要的东东,几乎所有的控件都需要它来控制数据的操作.也可以说是ASP.net的数据核心. 我们先来看一个简单的例子: <% @ Page Language="C#" %><% @ Import Namespace="System.Data" %><Script Language="C#" Runat="Server">public

亲密接触ASP.Net(6) Namespace(命名空间)的使用

关于Namespace(命名空间)的使用 在前面的程序中我们看到,我常用<% @ Import Namespace="System.Data" %>,这是在引用M$为我们提供的Namespace,这和ASP不同的,我们在ASP.net必须先引用与我们操作有关的Namespace后才能使用相应的功能.其实说白了,一个Namespace; 就是一个组件.这个是关于ASP.net的高级应用,我会在后面的章节讲.(不过要写到那里,时间......) 我下面简单的列举一些常用的Nam