点击这里给我发消息 点击这里给我发消息

ASP.net DataSet对象

添加时间:2013-12-6
    相关阅读: 设计 ASP 页面 数据库 网络 程序 HTML
 

DataSet对象也称为数据集对象,DataSet对象用于表示那些储存在内存中的数据,它相当于一个内存中的数据库。它可以包括多个DataTable对象及DataView对象。DataSet主要用于管理存储在内存中的数据以及对数据的断开操作。
由于DataSet对象提供了一个离线的数据源,这样减轻了数据库以及网络的负担,在设计程序的时候可以将DataSet对象作为程序的数据源。
下面是一个利用Adapter对象填充数据到DataTable(或DataSet)并显示的例子,这个例子采用了页面和代码分离模式,前台代码如下:

01.<%@ Page Language="C#" AutoEventWireup="true" CodeFile="DataAdapter.aspx.cs" Inherits="DataAdapter" %>
02.<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "" >
04.<head runat="server">
05.    <title>利用Adapter对象填充DataTable的例子</title>
06.</head>
07.<body>
08.    <form id="form1" runat="server">
09.    <div>
10.    <table border="1" cellpadding="0" cellspacing="0">
11.    <tr><td>编号</td><td>帐号</td><td>真实姓名</td><td>年龄</td><td>性别</td><td>手机</td><td>电话</td><td>电子邮件</td></tr>
12.    <%
13.        //在页面中调用后台代码,这样也能保证生成的代码不会位于<html></html>标记之外
14.        ShowData();
15.    %>
16.    </table>
17.    </div>
18.    </form>
19.</body>
20.</html>

相应的后台代码:

01.using System;
02.using System.Data;
03.using System.Configuration;
04.using System.Collections;
05.using System.Web;
06.using System.Web.Security;
07.using System.Web.UI;
08.using System.Web.UI.WebControls;
09.using System.Web.UI.WebControls.WebParts;
10.using System.Web.UI.HtmlControls;
11.using System.Data.SqlClient;
12.public partial class DataAdapter : System.Web.UI.Page
13.{
14.    protected void Page_Load(object sender, EventArgs e)
15.    {
16.    }
17.    //供前台页面调用的方法,这个方法必须是protected或者public
18.    protected void ShowData()
19.    {
20.        //实例化Connection对象
21.        SqlConnection connection = new SqlConnection("Data Source=(local);Initial Catalog=AspNetStudy;Persist Security Info=True;User ID=sa;Password=sa");
22.        //实例化Command对象
23.        SqlCommand command = new SqlCommand("select * from UserInfo where sex=0", connection);
24.        SqlDataAdapter adapter = new SqlDataAdapter(command);
25.        /*
26.         下面的被注释掉的代码与上面的代码是等效的
27.        SqlDataAdapter adapter = new SqlDataAdapter("select * from UserInfo where sex=0", connection);
28.         */
29.        DataTable data = new DataTable();
30.        adapter.Fill(data);
31.        /* 下面的被注释掉语句与上面填充DataTable的效果是一样的,我更倾向于没有注释掉的部分
32.        DataSet ds = new DataSet();//实例化DataSet
33.        adapter.Fill(ds, "UserInfo");//填充ds中的"UserInfo"表
34.        DataTable data = ds.Tables["UserInfo"];
35.        */
36.        for (int i = 0; i < data.Rows.Count; i++)
37.        {
38.            Response.Write("<tr><td>" + data.Rows[i]["UserId"].ToString() + "</td>");
39.            Response.Write("<td>" + data.Rows[i]["UserName"].ToString() + "</td>");
40.            Response.Write("<td>" + data.Rows[i]["RealName"].ToString() + "</td>");
41.            Response.Write("<td>" + data.Rows[i]["Age"].ToString() + "</td>");
42.            //下面是按照列顺序直接读取值,并且根据值来判断最终显示结果
43.            Response.Write("<td>" + (bool.Parse(data.Rows[i]["Sex"].ToString()) == true ? "男" : "女") + "</td>");
44.            //根据列顺序读,列的值需要做相应转换
45.            Response.Write("<td>" + data.Rows[i]["Mobile"].ToString() + "</td>");
46.            //根据列名来读取,列的值需要做相应转换
47.            Response.Write("<td>" + data.Rows[i]["Phone"].ToString() + "</td>");
48.            Response.Write("<td>" + data.Rows[i]["Email"].ToString() + "</td></tr>/n");
49.        }
50.    }
51.}

上面的程序代码基本与使用DataReader对象的例子相同,不过这里查询的所有女性用户,效果如下:

 

咨询热线:020-85648757 85648755 85648616 0755-27912581 客服:020-85648756 0755-27912581 业务传真:020-32579052
广州市网景网络科技有限公司 Copyright◎2003-2008 Veelink.com. All Rights Reserved.
广州商务地址:广东省广州市黄埔大道中203号(海景园区)海景花园C栋501室
= 深圳商务地址:深圳市宝源路华丰宝源大厦606
研发中心:广东广州市天河软件园海景园区 粤ICP备05103322号 工商注册