asp.net DataSet,DataTable,DateView的关系和用法

asp教程.net dataset,datatable,dateview的关系和用法
ataset就是一个临时的小仓库,通过sqldataapert,可相当于卡车,将数据从数据库教程中通过适配器sqldataapert放到dataset中,所以即使断开了连接,也照样可以与数据库打交道,下面看一个例子:

public static dataset query(string sqlstr)

      {

         using(oledbconnection conn=new oledbconnection(connstr))

         {

             try

             {

                 dataset ds = new dataset()

                 oledbdataadapter da = new oledbdataadapter();

                 da.fill(ds, "ds");

                 return ds;

             }

             catch (oledbexception e)

             {

                 throw new exception(e.message);

             }

         }

      }

可以看出基本用法,通过oledbdataadapter的fill方法将数据填充到dataset中,其中

da.fill(ds, "ds"); 后面的ds是表明,因为dataset中包含很多表,其实我们就是把数据添加到dataset的表中,这个在后面会讲到,如果不写,则以索引0开始

datatable dt=ds.tables[“ds”]

datatable dt=ds.tables[0];

 

下面我们有必要看看dataset的组成部分

dataset有很多datatable,datatable中有很多的dataview

datatable中有很多的datarow和datacolumn组成

获得具体的值就是:

ds.tables[“表明”].rows[0][“列名字”]

 

dataview是显示出来的视图,比如我们要绑定到girlview的数据源绑定中,为了显示,就用到了dataview

dataview dv=new dataview();

dv.table=ds.tables[“”]

this.girlview.datasource=dv;

 

或者使用defaultview,这样就不用实例化dataview了;

this.girlview.datasource= ds.tables[0].defaultview;

 

我们还可以dataview进行过滤

 

ds.tables[0].defaultview.rowfilter = "id=1";

或者

dataview dv=new dataview();

dv.rowfilter=”id=1”;

 

dataset的多表查询

多表查询或者数据量很大的时候我们都可以使用dataset,下面就看看使用dataset如何进行多表查询,下面看个例子

public static dataset query(string sqlstring)
    {
        using (sqlconnection connection = new sqlconnection(connectionstring))
        {
            dataset ds = new dataset();
            try
            {
                connection.open();
                sqldataadapter command = new sqldataadapter(sqlstring, connection);
                command.fill(ds, "ds");
            }
            catch (system.data.sqlclient.sqlexception ex)
            {
                throw new exception(ex.message);
            }
            return ds;
        }
    }

string citysql = "select * from soncity;select * from partytype";
 ds= dbhelpersql.query(citysql);
 s1.datasource = ds.tables[0].defaultview;
 s1.datatextfield = "sonname";
 s1.databind();
 s2.datasource = ds.tables[1].defaultview;

 s2.datatextfield = "partytypename";
s2.databind();

从上面我们可以看出如何进行多表查询了,sql语句可以写多个,用分号隔开就可以了

string citysql = "select * from soncity;select * from partytype";

返回的时候就是按着索引从0开始返回表格

 s1.datasource = ds.tables[0].defaultview;

 s2.datasource = ds.tables[1].defaultview;

 

dataset和sqlcommand的关系

使用sqldataadapter 的时候不知道有没有想过这样的问题,为什么数据库不用打开直接就可以连接了呢?在这里我就来告诉大家原因:

  其实 数据库的连接是隐式的被打开的

sqldataadapter  sqldateadapter = new sqldataadapter(sql语句,connection);

 

其实它是隐式的替代了下面的代码:

conn.open();

                sqlcommand cmd = new sqlcommand();

                cmd.commandtext = "select * from googs";

                cmd.commandtype = commandtype.text;

                cmd.connection = conn;

                sqldataadapter   sqldateadapter = new sqldataadapter();

                sqldateadapter.selectcommand = cmd;

 

时间: 2024-07-30 21:47:14

asp.net DataSet,DataTable,DateView的关系和用法的相关文章

ASP.NET中DataTable,DataSet,DataView的用法小结

  本篇文章主要介绍DataTable,DataSet的使用方法,属性总结型,因此只抛出重点.关于DataTable,DataSet这里简要说明下:dataset是数据集,可以包含datatable,以及各个数据表之间的关系等,datatable是数据表,有列columns,行rows等.DataView是视图,用来创建DataTable中所存储数据的不同视图,通常用于数据绑定,方法如下:   DataView DV = ds.Tables["表名"].DefaultView; Dat

ASP.NET中DataTable与DataSet之间的转换示例_实用技巧

DataSet包含了多个DataTable,以及DataTable之间的约束关系. 如果你的数据不需要做关系映射,直接用DataTable效率比较高.如果有需要1:N或N:M这样的关系查询,将DataSet中的相应DataTable全部填充,再使用关系查询数据. DataSet数据源你可以把它看成数据库,而DataTable就是数据库里的一个表 将DataTable添加到DataSet中: 在项目中遇到DataTable 无法直接转换成DataSet 时, 可以先new 可以先new DataS

DataSet DataTable DataReader DataAdapter详解

 public JsonResult Test()        {            JsonResult json = new JsonResult                                 {                                     Data = new                                                {                                          

asp.net将datatable数据转换为xml下载

问题描述 asp.net将datatable数据直接转换为xml并下载吗?现在的程序是将datatable数据转换为xml文件并保持在服务器,然后再下载.不知道能跳过"将datatable生成xml文件保存在服务器"这一步,直接将datatable转换成xml文件下载吗? 解决方案 解决方案二:直接将xml字符串response出来就可以了啊,指定返回的是xml,你查下文件下载,思路一样的解决方案三:有点不能理解将datatable数据转换为xml文件并保持在服务器和将datatabl

asp.net使用DataTable构造Json字符串的方法_实用技巧

本文实例讲述了asp.net使用DataTable构造Json字符串的方法.分享给大家供大家参考,具体如下: /// <summary> /// 将datatable转换为json /// </summary> /// <param name="dtb"></param> /// <returns></returns> private string Dtb2Json(DataTable dtb) { JavaScr

asp.net中的check与uncheck关键字用法解析_实用技巧

本文实例讲述了asp.net中的check与uncheck关键字用法.分享给大家供大家参考.具体分析如下: checked和unchecked是两个不常用的关键字,但是确是非常有用的关键字,对此,建议测试时开启全局checked编译器选项. 1. 一段编译没经由过程的代码 复制代码 代码如下: int a = int.MaxValue * 2; 以上代码段编译没有经由过程,在VS2010中会有一条红色的波浪线指出这段代码有题目:"The operation overflows at compil

asp.net模板引擎Razor调用外部方法用法实例_实用技巧

本文实例讲述了asp.net模板引擎Razor调用外部方法用法.分享给大家供大家参考.具体如下: 首先使用Razor的步骤:读取cshtml.解析cshtml同时指定cacheName. 而这个步骤是重复的,为了遵循DRY原则,将这段代码封装为一个RazorHelper()方法 public class RazorHelper { public static string ParseRazor(HttpContext context, string csHtmlVirtualPath, obje

从ASP迁移至ASP+ -----进入DataSet

asp+ 原作者: 雨晨ADO+引入了DataSet和DataView的概念.DataSet类似于记录集的集合,因为它能保存一个或多个数据及其之间关系的表(table).DataView是这些表中之一的实现,类似于ADO 记录集.在上面的例子中,我们的DataSet只保存一个表:Upcoming,我们要将之驻留于ASP+服务器控件中.可以通过以下方式向DataSet中加入更多表. *重新定义我们的SQL语句. *将ADODataCommand的SelectCommand属性设置为一个新的ADOD

asp.net的DataTable 缓存类。

asp.net|缓存 using System;using System.Web;using System.Data; namespace sc{ /// <summary> //**************************************/ // 说明:DateTable的缓存类. // 属性:name:缓存的名称.只写 // 属性:Values:缓存的值 读写 // 方法:CheckCache():检查是否有缓存.返回bool // 方法:MakeCacheEmpty():