Foxtable(狐表)用户栏目专家坐堂 → 数据替换不成功


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

主题:数据替换不成功

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


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
数据替换不成功  发帖心情 Post By:2019/10/13 18:15:00 [只看该作者]

以下代码:
Dim i As Integer=0
Dim dr As DataRow
For Each dr1 As DataRow In DataTables("学生信息导入样表").DataRows
    dr=DataTables("xszxztb").SQLfind("sfzhm=" & dr1("身份证号码"))
    If dr IsNot Nothing Then
        dr("yhkh")=dr1("银 行卡号")
        dr.save()
        i=i+1
    End If
Next
MessageBox.show("共替换成功" & i & "条记录")

执行完毕,查看数据表,但数据替换不成功,重新打开项目后也没发现替换的数据。问题在那?

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2019/10/13 19:34:00 [只看该作者]

您的系统执行上面的代码会不会很慢?

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2019/10/13 19:34:00 [只看该作者]

发示例文件!

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


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

dr=DataTables("xszxztb").SQLfind("sfzhm='" & dr1("身份证号码") & "'")

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


加好友 发短信
等级:超级版主 帖子:106209 积分:540168 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/10/13 20:02:00 [只看该作者]

这样效率应该会高一点

Dim i As Integer=0
Dim dr As DataRow
For Each dr1 As DataRow In DataTables("学生信息导入样表").DataRows
    DataTables("xszxztb").SQLReplaceFor("yhkh",dr1("银 行卡号"),"sfzhm=" & dr1("身份证号码"))
    i=i+1
Next
MessageBox.show("共替换成功" & i & "条记录")

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2019/10/13 20:36:00 [只看该作者]

DataTables("学生信息导入样表").StopRedraw
Dim i As Integer = 0
Dim dr As DataRow
For Each dr1 As DataRow In DataTables("学生信息导入样表").DataRows
    DataTables("xszxztb").SQLReplaceFor("yhkh",dr1("银 行卡号"),"sfzhm= '" & dr1("身份证号码") & "'")
    i=i+1
Next
DataTables("学生信息导入样表").Save()
DataTables("学生信息导入样表").ResumeRedraw
MessageBox.show("共替换成功" & i & "条记录")

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


加好友 发短信 一级勋章
等级:超级版主 帖子:7235 积分:40550 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2019/10/13 20:38:00 [只看该作者]

如果不是您的条件值表达式错误导致没有找到行,您的代码会耗时很长!

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


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
  发帖心情 Post By:2019/10/14 10:58:00 [只看该作者]

谢谢两位斑竹!
如果是要替换多列,列名称储存在集合lms中,如何才能知道替换了几条?替换过的在源表,即“学生信息导入样表” 的是否替换成功做记录呢。代码入下:
   DataTables("学生信息导入样表").StopRedraw
Dim i ,y As Integer = 0
        Dim dr As DataRow
        For Each dr1 As DataRow In DataTables("学生信息导入样表").DataRows
            For y=0 To lms.count-1
                DataTables("xszxztb").SQLReplaceFor(lms(y),dr1(nms(y)),"sfzhm= '" & dr1("身份证号码") & "'")
            Next
            i=i+1
            
        Next
        DataTables("学生信息导入样表").Save()
        DataTables("学生信息导入样表").ResumeRedraw
        MessageBox.show("共替换成功" & i & "条记录")

这里的 i 显然不是替换了的行数,dr1("是否替换成功")=true 又插下那呢?
谢谢!

[此贴子已经被作者于2019/10/14 11:49:11编辑过]

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


加好友 发短信
等级:四尾狐 帖子:855 积分:6402 威望:0 精华:0 注册:2017/11/21 21:31:00
  发帖心情 Post By:2019/10/14 11:36:00 [只看该作者]

谢谢两位斑竹!
如果是要替换多列,列名称储存在集合lms中,如何才能知道替换了几条?替换过的在源表,即“学生信息导入样表” 的是否替换成功做记录呢。代码入下:
   DataTables("学生信息导入样表").StopRedraw
Dim i ,y As Integer = 0
        Dim dr As DataRow
        For Each dr1 As DataRow In DataTables("学生信息导入样表").DataRows
            For y=0 To lms.count-1
                DataTables("xszxztb").SQLReplaceFor(lms(y),dr1(nms(y)),"sfzhm= '" & dr1("身份证号码") & "'")
            Next
            i=i+1
            
        Next
        DataTables("学生信息导入样表").Save()
        DataTables("学生信息导入样表").ResumeRedraw
        MessageBox.show("共替换成功" & i & "条记录")

这里的 i 显然不是替换了的行数,dr1("是否替换成功")=true 又插下那呢?
谢谢!

[此贴子已经被作者于2019/10/14 11:46:47编辑过]

 回到顶部