在我们对数据库进行操作的时候,总是先把数据从数据库取出来,然后放到一个"容器"中,再通过这个"容器"取出数据显示在前台,而充当这种容器的角色中当属DataSet是最为普遍和重要的了,可以说DataSet在数据库和前台中起到了一个桥梁的作用。

下面就来谈谈DataSet的用法。(DataSet对象本身是没有存取数据库的能力的,它要与DataAdapter一般是配合使用的,而关于DataAdapter的用法在我的另一篇文章中有介绍,大家可以看一下)

DataSet可以包含多个数据表,可以在程序中动态地产生数据表,而这里的数据表可来自数据库,文件或者XML(前面已经讲过XML的用法了,不是很了解的话可以去看一下)。而DataSet提供了对数据进行浏览,编辑,排序,过滤和建立视图的方法。

DataSet采用非连接的传输模式访问数据库,即在将用户所请求的数据读入DataSet后,与数据库的链接就关闭了,这样其他用户可以继续使用数据源。

在我用DataSet这么久以来,不光是会用那些关于DataSet的固定语句,其实认识到DataSet的结构才是最为关键的。下面就是DataSet对象的结构:

DataSet对象的属性和方法:

DataSetName  获取或设置DataSet对象的名称

Tables

获取数据集的数据表集合(DataTableCollection),DataSet对象的所有DataTable对象都属于DataTableCollection

最常用的属性就是Tables,通过该属性,可以获得或设置数据表行,列的值。

例如,表达式"DS.Tables["ShoppingCart"].rows(i).Item(j)"表示访问ShoppingCart表的第i行第j列。

最常用的方法是Clear()和Copy().Clear方法是清除DataSet对象的数据,删除所有DataTable对象。Copy方法复制DataSet对象的结构和数据,返回值是与本DataSet对象具有相同的结构和数据的DataSet对象。

简单的例子:(没有前台代码,只有后台跟DataSet有关的部分代码,不过之后我会上传这个的案例,大家有兴趣的可以看看)

    1. protected void Page_Load(object sender,EventArgs e)
    2. {
    3. 链接数据库的sqlconnection暂时先省略
    4. SqlDataAdapter sqlad = new SqlDataAdapter(sql,con);  //创建SqlDataAdapter对象并执行sql查询
    5. DataSet ds = new DataSet();  //创建数据集
    6. sqlad.Fill(ds);  //填充数据集
    7. GridView1.DataSource=ds.Tables[0].DefaultView;  //设置数据源
    8. GridView1.DataBind();  //绑定数据源
    9. }

浅谈ASP.net中的DataSet对象的更多相关文章

  1. 浅谈Asp.Net中的几种传值方式

    一.使用Querystring Querystring是一种非常简单的传值方式,其缺点就是会把要传送的值显示在浏览器的地址栏中,并且在此方法中不能够传递对象.如果你想传递一个安全性不是那么太重要或者是 ...

  2. 【ASP.NET MVC系列】浅谈ASP.NET MVC八大类扩展(上篇)

    lASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操 ...

  3. 【ASP.NET MVC系列】浅谈ASP.NET 页面之间传值的几种方式

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  4. 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  5. 【ASP.NET MVC系列】浅谈ASP.NET MVC 视图与控制器传递数据

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  6. 【ASP.NET MVC系列】浅谈ASP.NET MVC 控制器

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  7. 【ASP.NET MVC系列】浅谈ASP.NET MVC 路由

    ASP.NET MVC系列文章 [01]浅谈Google Chrome浏览器(理论篇) [02]浅谈Google Chrome浏览器(操作篇)(上) [03]浅谈Google Chrome浏览器(操作 ...

  8. c#Winform程序调用app.config文件配置数据库连接字符串 SQL Server文章目录 浅谈SQL Server中统计对于查询的影响 有关索引的DMV SQL Server中的执行引擎入门 【译】表变量和临时表的比较 对于表列数据类型选择的一点思考 SQL Server复制入门(一)----复制简介 操作系统中的进程与线程

    c#Winform程序调用app.config文件配置数据库连接字符串 你新建winform项目的时候,会有一个app.config的配置文件,写在里面的<connectionStrings n ...

  9. 转:浅谈C/C++中的指针和数组(一)

    再次读的时候实践了一下代码,结果和原文不一致 error C2372: 'p' : redefinition; different types of indirection 不同类型的间接寻址 /// ...

随机推荐

  1. PAT 甲级 1010 Radix

    https://pintia.cn/problem-sets/994805342720868352/problems/994805507225665536 Given a pair of positi ...

  2. PAT 甲级 1001 A+B Format

    https://pintia.cn/problem-sets/994805342720868352/problems/994805528788582400 Calculate a + b and ou ...

  3. python查询mysql以字典返回

    # *_*coding:utf-8 *_* import pymysql conn = pymysql.connect(host='192.168.33.10', user='root', passw ...

  4. Angular中sweetalert弹框的使用详解

    最近太忙了,项目中使用的弹框老板嫌太丑,让我们优化一下,我在网上找了一下,找到了sweetalert弹框,算是比较好看的弹框了.所以我就想办法将sweetalert用到项目中,在项目中引入sweeta ...

  5. SPOJ NETADMIN_Smart Network Administrator

    给一个图,某些点需要单独以某一种颜色的线连接到1点,问如何安排能够使得整个图颜色最多的一条路颜色最少. 显然,二分枚举然后加以颜色其实就是流量了,相当于对每条边限定一个当前二分的流量值,判断能否满流即 ...

  6. 字符串(string)与整型(int)、浮点型(float)等之间的转换

    #include <stdlib.h> 1.int/float to string/array: C语言提供了几个标准库函数,可以将任意类型(整型.长整型.浮点型等)的数字转换为字符串,下 ...

  7. MySQL复制 -- binlog(2)

    MySQL复制是使用最为广泛的一套组建,上一节已经简单说了一下复制的一些用途和复制的原理,知道了这些我们能够快速的搭建起复制的平台,但是仅知道这些还是不够的,很多时候并不是一帆风顺的,总会有那么一小段 ...

  8. Stone Game, Why are you always there? HDU - 2999(sg定理)

    题意:给你n个数的集合,表示你每次取石子只能为集合里的数,然后给你一排石子,编号为1~n,每次你可以取相邻位置的连续石子(数量只能为集合里的数),注意石子的位置时不变的,比如把2拿走了,1和3还是不相 ...

  9. MT【118】利用线面角最小解题

    解:如图将正四面体放到立方体中,让AB通过$\alpha$面,让$\alpha$面绕着AB动起来.问题就转化成为EF与面$\alpha$线面角$\theta$了.EF的投影为$|EF|cos\thet ...

  10. 【转】64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解

    64位Ubuntu 16.04搭建嵌入式交叉编译环境arm-linux-gcc过程图解,开发裸机环境之前需要先搭建其开发环境,毕竟工欲善其事必先利其器嘛.  安装步骤 1.准备工具安装目录 下载 ar ...