SQLSelect
DataTable的SQLSelect方法和Select方法类似,不过Select用于从已经加载的数据中查询数据,而SQLSelect用于从后台数据中查询数据。
语法:
SQLSelect(Filter,Top,Sort)
Filter: 查询条件,采用的是SQL语法,和常规表达式的语法有所不同,请参考:SQL表达式的语法差异。
Top: 可选参数,指定返回的行数
Sort: 可选参数,指定查询顺序,和Top配合使用。
SQLSelect会返回一个集合,包括所有符合条件的行。
示例一
从后台查询出产品PD01的订单,并累计出数量:
Dim
drs
As
List(of
DataRow)
= DataTables("订单").SQLSelect("产品
= 'PD01'")
Dim Sum
As
Integer
For Each
dr
As
DataRow
In drs
Sum
= Sum
+ dr("数量")
Next
Output.Show(Sum)
提示:这只是一个介绍SQLSelect用法的例子,你真要计算后台数据,请使用SQLCompute方法,会简洁高效很多。
示例二
如果是数据表,可以修改通过SQLSelect筛选出来的行,并保存之:
Dim
drs
As
List(of
DataRow)
= DataTables("订单").SQLSelect("产品
= 'PD01'")
For Each
dr
As
DataRow
In drs
dr("折扣")
= 0.1
Next
DataTables("订单").SQLUpdate(drs)
SQLUpdate专门用于批量保存通过SQLSelect筛选出来的行。
提示:这只是一个介绍SQLSelect用法的例子,你真要更新后台数据,请使用SQLReplaceFor方法,会简洁高效很多。
示例三
通过Top和Sort参数配合使用,我们可以返回指定顺序的前n行。
例如按日期顺序,返回产品PD01的前10个订单:
Dim
drs
As
List(of
DataRow)
drs =
DataTables("订单").SQLSelect("产品
= 'PD02'",10,
"日期
Desc")
示例四
如果需要按顺序返回所有行,可以将Top参数设置为"",例如按日期顺序,返回所有产品为PD01的订单:
Dim
drs
As
List(of
DataRow)
drs =
DataTables("订单").SQLSelect("产品
= 'PD02'","",
"日期
Desc")