Foxtable(狐表)用户栏目专家坐堂 → 请问怎么才能让未填写数据的格子参与的运算总是符合条件的


  共有3752人关注过本帖树形打印复制链接

主题:请问怎么才能让未填写数据的格子参与的运算总是符合条件的

帅哥哟,离线,有人找我吗?
i4whylg
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:281 积分:3183 威望:0 精华:0 注册:2014/2/19 10:32:00
请问怎么才能让未填写数据的格子参与的运算总是符合条件的  发帖心情 Post By:2021/7/27 2:14:00 [显示全部帖子]

数据表如下:
图片点击可在新窗口打开查看
窗口如下:
图片点击可在新窗口打开查看
查询按钮代码如下:
For Each c As object  In e.Form.Controls '遍历所有控件不为空
    If Typeof c Is WinForm.TextBox OrElse Typeof c Is WinForm.ComboBox  OrElse Typeof c Is WinForm.NumericComboBox Then '判断控件是否是文本框
        If c.Value = Nothing Then
            MessageBox.Show("请填写完整所有的数据!")
            c.Select()
            Return
        End If
    End If
Next


Dim filter As String = CExp("[温度下限] >= {0} And [温度上限] <= {1} And [材料分类] = '{2}'", e.Form.Controls("NumericComboBox2").Value, e.Form.Controls("NumericComboBox2").Value, e.Form.Controls("TextBox4").Value)

Dim drs As List(of DataRow)  = DataTables("法规").SQLSelect(filter)


For Each dr As DataRow In drs
    Dim s As String = dr("法规")
    MessageBox.Show(s)
Next

有个问题是对于未填数据的格子,怎么才能不参与过滤条件,即无数据的格子总是符合条件的,true。

 回到顶部
帅哥哟,离线,有人找我吗?
i4whylg
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:281 积分:3183 威望:0 精华:0 注册:2014/2/19 10:32:00
  发帖心情 Post By:2021/7/27 10:27:00 [显示全部帖子]

老师,我的跟您给的例子不一样,我是查询窗口都填满的,但被筛选的表里面是有为空的格子的

 回到顶部
帅哥哟,离线,有人找我吗?
i4whylg
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:281 积分:3183 威望:0 精华:0 注册:2014/2/19 10:32:00
  发帖心情 Post By:2021/7/27 10:38:00 [显示全部帖子]

我的意思是想让被筛选的表格里如果是空的,即使查询窗口有数值,跟这个空值比较,无论结果如何,都不影响筛选结果。现在的情况是空值参与比较,结果肯定是false,导致其他有值的格子即使条件符合,总的过滤条件也变得不符合了。

 回到顶部
帅哥哟,离线,有人找我吗?
i4whylg
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:281 积分:3183 威望:0 精华:0 注册:2014/2/19 10:32:00
  发帖心情 Post By:2021/7/27 11:10:00 [显示全部帖子]

您看那我筛一列保存符合条件的行和空行,再在得到的行的集合里面筛下一列保存符合条件的行和空行,这样一列列筛过去可行么
[此贴子已经被作者于2021/7/27 11:10:52编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
i4whylg
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:281 积分:3183 威望:0 精华:0 注册:2014/2/19 10:32:00
  发帖心情 Post By:2021/7/27 15:38:00 [显示全部帖子]

老师,是用Fill方法填充到新建的临时表么?
我还想了一个方法,新增一个标记列,一列筛选后更改不需要的标记列,多轮筛选后剩下来的没有改变标记的行就是最后的结果。这种方法可以么?是不是效率不如第一种?
数据库大概1万行左右。

 回到顶部