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


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

主题:SQLFind

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


加好友 发短信
等级:童狐 帖子:284 积分:2793 威望: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 显示“找到”,请问老师这是什么原因。

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


加好友 发短信
等级:童狐 帖子:284 积分:2793 威望: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编辑过]

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


加好友 发短信
等级:童狐 帖子:284 积分:2793 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/2/11 20:30:00 [显示全部帖子]

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

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


加好友 发短信
等级:童狐 帖子:284 积分:2793 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/2/11 20:46:00 [显示全部帖子]

比较邪门,也找过,没有

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


加好友 发短信
等级:童狐 帖子:284 积分:2793 威望: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编辑过]

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


加好友 发短信
等级:童狐 帖子:284 积分:2793 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/2/12 10:42:00 [显示全部帖子]

确定就是“nvarchar”

图片点击可在新窗口打开查看此主题相关图片如下:编号nvachar.png
图片点击可在新窗口打开查看


[此贴子已经被作者于2019/2/12 11:39:54编辑过]

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


加好友 发短信
等级:童狐 帖子:284 积分:2793 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/2/12 11:41:00 [显示全部帖子]

确定

图片点击可在新窗口打开查看此主题相关图片如下:编号nvachar.png
图片点击可在新窗口打开查看


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


加好友 发短信
等级:童狐 帖子:284 积分:2793 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/2/12 11:56:00 [显示全部帖子]

老师,是不是我只要现在把列如表中的编号列的数据类型由“nvarchar”改为“nchar”之后,以前这个列的所有数据会自动填充空格至列宽,然后如果再改回“nvarchar”时也不会自动去除空格。如果是这样的话,真有可能是我无意中调试时改了一次   

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


加好友 发短信
等级:童狐 帖子:284 积分:2793 威望:0 精华:0 注册:2012/10/26 0:45:00
  发帖心情 Post By:2019/2/12 14:45:00 [显示全部帖子]

谢谢老师

 回到顶部