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")

 


本页地址:http://www.foxtable.com/webhelp/topics/2900.htm