DataView的一些简单用法

一、         设置索引和试图

DataTableSelect方法可以对一个表进行筛选和查询,返回的是数据表中可用行的一个子集,这样本来是很方便的,但是如果数据表比较大,而且需要重复对这个表进行相同的查询,那么资源的使用效率就无法达到最佳,另外Select方法返回的是DataRow数组,而不是一个DataTable,所以一些需要一张完整表才能处理的工具就不能对返回的数据行数组进行处理了。

为了客服上面这些问题,ADO.NET中有DataView类。

1、创建DataView对象

它的构造函数有以下三个版本

public DataView();

  

publicDataView(DataTable table);

      

publicDataView(DataTable table, string RowFilter, string Sort, DataViewRowState RowState);

 

默认情况下是把一个表中的所有数据行都映射到了视图中,但是有时候并不需要,我们只需要我们需要的行,并对他排序。下面这两种构造方法是等价的

(1)            DataView view=newDataView(table,”体重=150”,”身高DESC”,DataViewRowState.None);

//直接在构造函数里面就实现删选和排序

(2)            DataView view=newDataView(table);

view.RowFilter=”体重=150”;

view.Sort=”身高 DESC”;

//通过设置相关的属性来实现筛选和排序

 注意:这里面的删选表达式排序表达式和前面讲解table.Select方法时是一样的。

最后一个参数是一个DataViewRowState枚举类型。

 

2、DataView类的三个布尔属性

这三个布尔属性决定了限制通过这个视图能够针对数据行执行的操作。

AllowNew   允许或禁止新建行

AllowEdit    允许或禁止更改行

AllowDelete  允许或禁止删除行

 

3、DataView的常见使用

(1)     查看视图中有多少行:Count属性 如:

Console.WriteLine($"该视图具有的行数为 {view.Count}");

(2)     查找视图中相应的行:Find()FindRows()方法,但是在使用这两个方法之前,有一个必须要注意的点,那就是必须在创建DataView对象时指定了相关的排序表达式,即前面的Sort属性,如下所示:

 

 

view.Sort = "体重 DESC";     //必须制定排序规则,如果不指定,下面的那条语句会出错

DataRowView[]rowView = view.FindRows(100);   //这里的100是体重那一列中的某一个值,即必须指定前面的排序规则才行

foreach (var item in rowView)

{

    Console.WriteLine($"{item[0]}  {item[1]}  {item[2]}");

 

}

 

(3)   将视图转化成一个新的表:ToTable()方法如

DataTable t = view.ToTable();

 

4、 数据表与表视图的补充

事实上,除了为一个表创建自定义的视图对象,即DataView对象以外,每一个表DataTable它本身已经默认了有一个视图的存在,可以通过它的一个属性去获取,即DefaultView属性

如:

DataView v =table.DefaultView;

 

在微信小程序中,可以使用DataView来处理二进制数据。DataView提供了一组方法来读取、写入和操作二进制数据。 下面是一个简单的示例,演示如何使用DataView来读取和写入二进制数据: ```javascript // 创建一个4字节的ArrayBuffer var buffer = new ArrayBuffer(4); // 创建一个DataView对象,并将其绑定到上面创建的ArrayBuffer var dataView = new DataView(buffer); // 向ArrayBuffer写入数据 dataView.setInt16(0, 42); // 在偏移量0处写入一个16位整数 // 从ArrayBuffer读取数据 var value = dataView.getInt16(0); // 从偏移量0处读取一个16位整数 console.log(value); // 输出:42 ``` 在这个例子中,首先创建了一个4字节的ArrayBuffer。然后,创建了一个与该ArrayBuffer绑定的DataView对象。使用`setInt16`方法将值42写入到偏移量为0的位置。最后,使用`getInt16`方法从偏移量为0的位置读取一个16位整数,并将其赋给变量`value`。 除了`setInt16`和`getInt16`,DataView还提供了其他一些方法来读取和写入不同类型的数据,例如`setUint8`、`getInt32`、`getFloat32`等。你可以根据需要选择适当的方法来操作二进制数据。 需要注意的是,DataView的操作是基于字节偏移量的,所以在读取和写入数据时需要指定正确的偏移量和数据类型。了解不同数据类型的字节长度和字节顺序也是很重要的。 希望这个示例对你理解如何使用DataView在微信小程序中处理二进制数据有所帮助。如有其他问题,请随时提问。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值