当前位置: 移动技术网 > IT编程>开发语言>.net > 亲密接触ASP.Net(9)

亲密接触ASP.Net(9)

2019年01月21日  | 移动技术网IT编程  | 我要评论

僵尸叔叔3gp下载,年代秀20120224,田震的歌曲

我们继续前面的内容,呵呵,这次主要是讲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来添加,修改,删除数据。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网