Foxtable(狐表)用户栏目专家坐堂 → 二表间光标对应?


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

主题:二表间光标对应?

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


加好友 发短信
等级:一尾狐 帖子:422 积分:2708 威望:0 精华:0 注册:2012/2/10 18:12:00
二表间光标对应?  发帖心情 Post By:2014/7/29 22:47:00 [只看该作者]

二表间光标对应,在主表CurrentChanged设置
If e.Table.Current Is Nothing Then '如果Current为Nothing
    Return '则返回
End If
Dim wz1 As Integer
Dim dr1 As DataRow
dr1 = DataTables("资料扫描").Find("[身份证号] = '" & e.Table.Current("身份证号") & "'")
If dr1 IsNot Nothing Then
    wz1 = Tables("资料扫描").FindRow(dr1)
    If wz1 >= 0 Then
        Tables("资料扫描").Position = wz1
    End If
End If
现在的问题是"资料扫描"没加载,在后台,无法让光标相互对应,代码要怎么写?用sqlfind不行啊


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


加好友 发短信
等级:狐神 帖子:4761 积分:34613 威望:0 精华:0 注册:2008/8/31 22:44:00
  发帖心情 Post By:2014/7/29 22:49:00 [只看该作者]

SQLCommand

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/29 22:51:00 [只看该作者]

If e.Table.Current Is Nothing Then '如果Current为Nothing
    Return '则返回
End If
Dim wz1 As Integer
Dim dr1 As DataRow
Dim filter As String = "[身份证号] = '" & e.Table.Current("身份证号") & "'"
dr1 = DataTables("资料扫描").Find(filter)
If dr1 Is Nothing Then
    DataTables("资料扫描").AppendLoad(filter)
End If
wz1 = Tables("资料扫描").FindRow(filter)
If wz1 >= 0 Then
    Tables("资料扫描").Position = wz1
End If

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


加好友 发短信
等级:一尾狐 帖子:422 积分:2708 威望:0 精华:0 注册:2012/2/10 18:12:00
  发帖心情 Post By:2014/7/29 22:53:00 [只看该作者]

还有一个问题是,若表A,表B在后台,下面设置不能完成引用,
Dim nmc() As String = {"第一列","第二列"} 'A表数据来源列
Dim nmd() As String = {"第一列","第二列"} 'B表数据接收列
Dim dra As Row = Tables("表A").Current
Dim drc As Row = Tables("表C").AddNew
For i As Integer = 0 To nmc.Length - 1
    drc(nmd(i)) = dra(nmc(i))
Next
Dim nma() As String = {"第一列","第二列"} 'A表数据来源列
Dim nmb() As String = {"第三列","第四列"} 'B表数据接收列
Dim drb As Row = Tables("表B").Current
Dim dr As Row = Tables("表C").Current
For i As Integer = 0 To nma.Length - 1
    dr(nmb(i)) = drb(nma(i))
Next
这是多表多列引用,若表A,表B数据在后台,如何引用?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/29 22:54:00 [只看该作者]

 表a,表b,在后台,就没有所谓的current一说啊。


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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/7/29 22:55:00 [只看该作者]

 如果要查找行,可以用sqlFind,或者用sqlcommand

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


加好友 发短信
等级:一尾狐 帖子:422 积分:2708 威望:0 精华:0 注册:2012/2/10 18:12:00
  发帖心情 Post By:2014/7/30 0:17:00 [只看该作者]

那具体的代码如何写啊?

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


加好友 发短信
等级:一尾狐 帖子:422 积分:2708 威望:0 精华:0 注册:2012/2/10 18:12:00
  发帖心情 Post By:2014/7/30 8:07:00 [只看该作者]

是不是这样?
Dim nmc() As String = {"第一列","第二列"} 'A表数据来源列
Dim nmd() As String = {"第一列","第二列"} 'B表数据接收列
Dim dra As Row = Tables("表A").Current
Dim drc As Row = Tables("表C").AddNew
For i As Integer = 0 To nmc.Length - 1
    drc(nmd(i)) = dra(nmc(i))
Next

Dim cmd As New SQLCommand
Dim dt As DataTable
Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
Dim Cols2() As String = {"接收列一","接收列二","接收列三"}
cmd.CommandText = "SELECT * From {表B} Where 条件语句"
dt = cmd.ExecuteReader()
For Each dr1 As DataRow In dt.DataRows
    Dim dr2 As DataRow = DataTables("表C").Current()
    For i As Integer = 0 To Cols1.Length -1
        dr2(Cols2(i)) = dr1(Cols1(i))
    Next
Next

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


加好友 发短信
等级:贵宾 帖子:35433 积分:178524 威望:0 精华:3 注册:2013/3/30 16:36:00
  发帖心情 Post By:2014/7/30 8:47:00 [只看该作者]

你的需求是什么,按照你8楼的代码,这样会遍历你查找出来的行, 一直覆盖直到最后一条


Dim nmc() As String = {"第一列","第二列"} 'A表数据来源列
Dim nmd() As String = {"第一列","第二列"} 'B表数据接收列
Dim dra As Row = Tables("表A").Current
Dim drc As Row = Tables("表C").AddNew
For i As Integer = 0 To nmc.Length - 1
    drc(nmd(i)) = dra(nmc(i))
Next
Dim nma() As String = {"第一列","第二列"} 'A表数据来源列
Dim nmb() As String = {"第三列","第四列"} 'B表数据接收列
Dim drb As Row = dataTables("表B").SQLFIND("条件语句")
Dim dr As Row = Tables("表C").Current
For i As Integer = 0 To nma.Length - 1
    dr(nmb(i)) = drb(nma(i))
Next

[此贴子已经被作者于2014-7-30 8:47:16编辑过]

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


加好友 发短信
等级:一尾狐 帖子:422 积分:2708 威望:0 精华:0 注册:2012/2/10 18:12:00
  发帖心情 Post By:2014/7/30 11:38:00 [只看该作者]

Dim drb As Row = dataTables("表B").SQLFIND("条件语句")
若是没有("条件语句"),是不是可以这样写?
Dim drb As Row = dataTables("表B").SQLFIND()

 回到顶部
总数 60 1 2 3 4 5 6 下一页