Foxtable(狐表)用户栏目专家坐堂 → [求助]find 主键列


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

主题:[求助]find 主键列

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


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]find 主键列  发帖心情 Post By:2020/9/8 8:36:00 [只看该作者]

老师好!
如下图,右边的表获取左边表的数据,显示主键信息没有问题,但是获取不到数据,是不是find的表达式有问题?
谢谢!


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (2).jpg
图片点击可在新窗口打开查看

代码:
......

’获取数据
Dim drs As List(of DataRow) = DataTables("批量预测").SQLSelect("代码 = '" & dm & "'" )

Dim i0 As Integer = 0     ’预设本行的主键值
For Each dr As DataRow In drs
    Dim dr01 As DataRow = DataTables("导入数据").SQLFind("代码 = '" & dm & "'  And 日期 = '" & dr("日期") & "'" )
    If dr01 IsNot Nothing Then
        dr("实际涨跌幅") = dr01("涨跌幅")
        dr("换手率") = dr01("换手率")
        i0 = dr("_Identify")    ’本行的主键值
    End If
    
    Dim dr02 As DataRow = DataTables("导入数据").SQLFind("[_Identify] = i0 +1 ")    ’下1行
    If dr02 IsNot Nothing Then
        dr("上1日换手率") = dr02("换手率")
    End If
    
    Dim dr002 As DataRow = DataTables("导入数据").SQLFind("[_Identify] = i0 +2 ")   ’下2行
    If dr002 IsNot Nothing Then
        dr("上2日换手率") = dr002("换手率")
    End If
    
    Dim dr003 As DataRow = DataTables("导入数据").SQLFind("[_Identify] = i0 +3 ")   ’下3行
    If dr003 IsNot Nothing Then
        dr("上3日换手率") = dr003("换手率")
    End If
Next


 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106629 积分:542322 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/8 9:38:00 [只看该作者]

自增主键不是按顺序增加的,很可能会跳号。建议使用自己的顺序号处理业务,不要使用[_Identify]做业务处理

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


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2020/9/8 11:09:00 [只看该作者]

谢谢老师!
在 DataRow 里也有行的概念,但是Index是row的属性,DataRow 的所在行数怎么弄?

Dim dr As DataRow
dr =
DataTables("订单").DataRows(0)


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:106629 积分:542322 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/9/8 11:23:00 [只看该作者]

DataTable的顺序是乱的,不存在行号这种东西,请使用自己自定义的顺序号处理业务

 回到顶部