以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- SQLFind (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=130913) |
-- 作者:无限5180 -- 发布时间:2019/2/11 16:51:00 -- SQLFind Dim bh As String = forms(args(0)).controls("编号").text Dim dr As DataRow = DataTables("全表").sqlfind("编号 = \'" & bh & "\' and 代码 = \'CGFK\' And ID = \'" & _xtyhid & "\'") If dr IsNot Nothing Then msgbox("找到") Else msgbox("未找到") End If 出现一个很奇怪的现象,采用SQLFind 显示“未找到”,但采用find 显示“找到”,请问老师这是什么原因。
|
-- 作者:有点甜 -- 发布时间:2019/2/11 19:38:00 -- 1、sqlfind,是查找已经保存的数据,请确保你的数据已经保存; 2、sqlfind的条件比较严格,如果是数值列,不能加引号 Dim dr As DataRow = DataTables("全表").sqlfind("编号 = " & bh & " and 代码 = \'CGFK\' And ID = " & _xtyhid & "")
|
-- 作者:无限5180 -- 发布时间:2019/2/11 20:07:00 -- 老师,我筛选的条件都不是数值,是字符串。 Dim dr As DataRow = datatables("全表").SQLFind("编号 = \'CGFK190211-0048\'") If dr IsNot Nothing Then msgbox("找到") Else msgbox("未找到") End If 我即使按这个条件查找,也还是SQLFind 显示“未找到”,而Find 显示“找到” [此贴子已经被作者于2019/2/11 20:27:07编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/2/11 20:26:00 -- 确保这个编号的数据已经保存。数据库里的编号列是什么类型的列?char?varchar? |
-- 作者:无限5180 -- 发布时间:2019/2/11 20:30:00 -- 数据是旧数据已经保存了,这个列的数据类型是“nvarchar”,长度150 [此贴子已经被作者于2019/2/11 20:31:44编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/2/11 20:44:00 -- 看看数据库这个编号的数据是不是有多余的空格 |
-- 作者:无限5180 -- 发布时间:2019/2/11 20:46:00 -- 比较邪门,也找过,没有 |
-- 作者:有点蓝 -- 发布时间:2019/2/11 20:49:00 -- 导出数据库和项目实例发上来测试 |
-- 作者:无限5180 -- 发布时间:2019/2/11 22:29:00 -- 老师,我怀疑编号前缀为:“CGFK” 的行我是直接后台写入的 Dim max As String = DataTables("全表").SQLCompute("Max(编号)","编号 Like \'CGFK%\'") Dim s1 As String = "CGFK190211-0051" output.show("max :" & max) output.show("s1 :" & s1) output.show("max 长度:" & max.length) output.show("s1 长度:" & s1.length) output.show("s1.substring(s1.length-4) :" & s1.substring(s1.length-4)) 这是我从命令窗口执行的程序,从后台调取的值的长度与从新写入的长度,虽然名称一样但显示长度不一样 执行: max = max.trim() 后长度变一致了,不知道怎么会有那么多空格,未trim之前的长度正好是列宽,现在正常了
[此贴子已经被作者于2019/2/11 22:37:56编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/2/11 22:38:00 -- 说明数据有多余的空格! 确定这个列的数据类型是“nvarchar”?
|