Foxtable(狐表)用户栏目专家坐堂 → SQLFind


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

主题:SQLFind

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


加好友 发短信
等级:幼狐 帖子:184 积分:1850 威望:0 精华:0 注册:2012/10/26 0:45:00
SQLFind  发帖心情 Post By:2019/2/11 16:51:00 [只看该作者]

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 显示“找到”,请问老师这是什么原因。

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


加好友 发短信
等级:版主 帖子:78031 积分:391300 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2019/2/11 19:38:00 [只看该作者]

1、sqlfind,是查找已经保存的数据,请确保你的数据已经保存;

2、sqlfind的条件比较严格,如果是数值列,不能加引号

Dim dr As DataRow = DataTables("全表").sqlfind("编号 = " & bh & " and 代码 = 'CGFK' And ID = " & _xtyhid & "")

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


加好友 发短信
等级:幼狐 帖子:184 积分:1850 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By: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 显示“找到”


图片点击可在新窗口打开查看此主题相关图片如下:采用find显示找到.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:用sqlfind显示未找到.png
图片点击可在新窗口打开查看

[此贴子已经被作者于2019/2/11 20:27:07编辑过]

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


加好友 发短信
等级:超级版主 帖子:25028 积分:127688 威望:0 精华:7 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/11 20:26:00 [只看该作者]

确保这个编号的数据已经保存。数据库里的编号列是什么类型的列?char?varchar?

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


加好友 发短信
等级:幼狐 帖子:184 积分:1850 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/2/11 20:30:00 [只看该作者]

数据是旧数据已经保存了,这个列的数据类型是“nvarchar”,长度150
[此贴子已经被作者于2019/2/11 20:31:44编辑过]

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


加好友 发短信
等级:超级版主 帖子:25028 积分:127688 威望:0 精华:7 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/11 20:44:00 [只看该作者]

看看数据库这个编号的数据是不是有多余的空格

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


加好友 发短信
等级:幼狐 帖子:184 积分:1850 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/2/11 20:46:00 [只看该作者]

比较邪门,也找过,没有

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


加好友 发短信
等级:超级版主 帖子:25028 积分:127688 威望:0 精华:7 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/11 20:49:00 [只看该作者]

导出数据库和项目实例发上来测试

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


加好友 发短信
等级:幼狐 帖子:184 积分:1850 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By: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)) 
这是我从命令窗口执行的程序,从后台调取的值的长度与从新写入的长度,虽然名称一样但显示长度不一样

图片点击可在新窗口打开查看此主题相关图片如下:后台写入的编号与非后台写入的编号长度不一致.png
图片点击可在新窗口打开查看

执行:
max = max.trim()
后长度变一致了,不知道怎么会有那么多空格,未trim之前的长度正好是列宽,现在正常了

[此贴子已经被作者于2019/2/11 22:37:56编辑过]

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


加好友 发短信
等级:超级版主 帖子:25028 积分:127688 威望:0 精华:7 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/2/11 22:38:00 [只看该作者]

说明数据有多余的空格!

确定这个列的数据类型是“nvarchar”?

 回到顶部
总数 17 1 2 下一页