以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助]关于查询代码加入限定条件 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=85205) |
-- 作者:scofields -- 发布时间:2016/5/20 10:40:00 -- [求助]关于查询代码加入限定条件 红袍老师,最近两天工作忙,有两天没来这里向你交流。之前我向你求助过全表查询的代码: Tables("FAJHB").DataTable.Load() Dim str As String = e.form.controls("textbox22").Text Dim filter As String = "1=2" For Each c As Col In CurrentTable.Cols filter &= " or convert(" & c.name & ",\'System.String\') like \'%" & str & "%\'" Next CurrentTable.Filter = filter 这个代码是对Textbox22输入的值在表FAJHB里进行查询,由于公司发货单的有效时间限定为2天,所以在项目的BeforeLoadOuterTable属性里,我加入了以下代码: If e.DataTableName = "FAJHB" Then Dim StartDate As Date = Date.Today().AddDays(-2) e.SelectString = " Select * Fro m {FAJHB} Where [发运日期] > \'" & StartDate & "\'" End If 看起来都没问题,但是点击查询按钮后,查询的数据是所有符合条件的数据,如果数据量大,势必会影响查询的效率与速度。我想实现:针对查询,只在近两天的范围内查询,不在近两天范围内的不做查询,你看那个查询代码怎么修改? [此贴子已经被作者于2016/5/20 10:40:25编辑过]
|
-- 作者:大红袍 -- 发布时间:2016/5/20 10:42:00 -- 代码根本就没有问题,filter筛选的时候,就是针对已经加载的数据,也就是2天的数据。 |
-- 作者:scofields -- 发布时间:2016/5/20 10:52:00 -- 不对啊,比如说我查询的是粤X45889,这一车在5月3日,5月4日,5月10日,5月20日都有记录,但我查询这个粤X45889的时候,5月3日,5月4日,5月10日,5月20日的数据都出来了,我想实现能不能只查询5月19日至5月20日的数据记录,其他的我不要了。 |
-- 作者:大红袍 -- 发布时间:2016/5/20 11:00:00 -- 这句代码去掉
Tables("FAJHB").DataTable.Load()
或者写成
Dim StartDate As Date = Date.Today().AddDays(-2) Tables("FAJHB").DataTable.LoadFilter = "[发运日期] > \'" & StartDate & "\'" Tables("FAJHB").DataTable.Load() [此贴子已经被作者于2016/5/20 11:00:07编辑过]
|