C#的DataView用法

在实际编程工程中,常常遇到这样的情况:DataTable并不是数据库中的,或者DataTable尚未写到数据库,或者从数据库中读出的DataTable已经在本地被改动,又没有写回数据库(可能还要作其他改动),在这些情况下,要查询DataTable中的数据,强大的SQL语言就派不上用场了。

有些.NET程序员采取在数据库中建立临时表等方法来解决这类查询问题。而我觉得这种方法不可行,其实只要用.NET类库中提供的DataView类的强大功能(主要是用它的RowFilter属性),就能方便地解决这类查询问题。下面就举一个具体的例子,来说明如何不用SQL语句,用DataView的RowFilter属性来查询。

步骤一:建立一个C#的ASP.NET项目。先编写一个生成DataTable的函数MakeDataTable(),代码如下:

private DataTable MakeTable()
 {
    //生成DataTable
    System.Data.DataTable myDataTable = new DataTable("本地数据表");
    DataColumn myDataColumn;
    DataRow myDataRow;
    //生成数据列 ID,商品名称,商品价格
    myDataColumn = new DataColumn();
    myDataColumn.DataType = System.Type.GetType("System.Int32");
    myDataColumn.ColumnName = "ID";
    myDataColumn.ReadOnly = true;
    myDataColumn.Unique = true;
    myDataTable.Columns.Add(myDataColumn);

    myDataColumn = new DataColumn();
    myDataColumn.DataType = System.Type.GetType("System.String");
    myDataColumn.ColumnName = "商品名称";
    myDataTable.Columns.Add(myDataColumn);

    myDataColumn = new DataColumn();
    myDataColumn.DataType =System.Type.GetType("System.Decimal");
    myDataColumn.ColumnName = "商品价格";
    myDataTable.Columns.Add(myDataColumn);
    //为数据表添加数据行
    myDataRow = myDataTable.NewRow();
    myDataRow["id"] = 1;
    myDataRow["商品名称"] = "足球";
    myDataRow["商品价格"] =57.5;
    myDataTable.Rows.Add(myDataRow);
    myDataRow = myDataTable.NewRow();
    myDataRow["id"] = 2;
    myDataRow["商品名称"] = "篮球";
    myDataRow["商品价格"] =64.5;
    myDataTable.Rows.Add(myDataRow);
    myDataRow = myDataTable.NewRow();
    myDataRow["id"] = 3;
    myDataRow["商品名称"] = "网球";
    myDataRow["商品价格"] =6.5;
    myDataTable.Rows.Add(myDataRow);
    myDataRow = myDataTable.NewRow();
    myDataRow["id"] = 4;
    myDataRow["商品名称"] = "网球拍";
    myDataRow["商品价格"] =388.5;
    myDataTable.Rows.Add(myDataRow);
    //返回数据表
    return myDataTable;
 }

时间: 2024-10-30 22:00:48

C#的DataView用法的相关文章

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

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

asp.net dataview做无限极分类的又一用法_实用技巧

数据库结构: classidid 主键 jobClassName 对应的类型名称 ClassName 对应的父类的id 通常做法: 复制代码 代码如下: private void Display(string parentid, String space) { DataTable dt; String strSQL; strSQL = "Select * From Tree Where ParentID =" + parentid + " Order By ClassID D

简单的!! dataview.sort 不排序

问题描述 //dt是一个DataTableSurName是它的一个字段DataViewdv=dt.DefaultView;dv.Sort="SurName";发现dv根本没排序,为什么啊,很简单的一个函数啊.换其它字段排序也不行 解决方案 解决方案二:你的用法没问题.解决方案三:dv.Sort="SurName";改为dv.Sort="SurNamedesc";试试看解决方案四:已经改成dv.Sort="SurNamedesc"

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

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

.net中DataTable DataSet DataView使用方法

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

python中enumerate函数用法实例分析

  本文实例讲述了python中enumerate函数用法.分享给大家供大家参考.具体分析如下: 今日发现一个新函数 enumerate .一般情况下对一个列表或数组既要遍历索引又要遍历元素时,会这样写: ? 1 2 for i in range (0,len(list)): print i ,list[i] 但是这种方法有些累赘,使用内置enumerrate函数会有更加直接,优美的做法,先看看enumerate的定义: ? 1 2 3 4 5 6 7 def enumerate(collect

php中$this、static、final、const、self的用法

  本篇文章主要分项了一下关于php类中的$this,static,final,const,self这几个关键字使用方法. $this $this表示当前实例,在类的内部方法访问未声明为const及static的属性时,使用$this->value='phpernote';的形式.常见用法如: $this->属性 $this->方法 举例如下:  代码如下   <?php class MyClass{  private $name;  public  function __cons

文件/目录权限设置命令chmod的详细用法

chmod是文件/目录权限设置的命令,在Linux中经常遇到,本博文以下总结chmod的详细用法.  Linux/Unix的档案调用权限分为三级,即档案拥有者user.群组group.其他other.u表示该档案的拥有者,g表示与该档案的拥有者属于同一个群体(group)者,o表示其他以外的人,a表示这三者皆是. + 表示增加权限.- 表示取消权限.= 表示唯一设定权限. r表示可读取,w表示可写入,x表示可执行.   举例说明: (1).将档案file1.txt 设为所有人皆可读取: chmo

Html5 CSS3新标签解释及用法

HTML 5 是一个新的网络标准,目标在于取代现有的 HTML 4.01, XHTML 1.0 and DOM Level 2 HTML 标准.它希望能够减少浏览器对于需要插件的丰富性网络应用服务(plug-in-based rich internet application,RIA),如Adobe Flash, Microsoft Silverlight, 与 Sun JavaFX 的需求. HTML 5 提供了一些新的元素和属性,反映典型的现代用法网站.其中有些是技术上类似 <div> 和