浅谈ASP.net中的DataSet对象

时间:2023-03-10 00:50:03
浅谈ASP.net中的DataSet对象

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

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

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

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

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

浅谈ASP.net中的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. }