以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 数据替换不成功 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=141891) |
-- 作者:gudao123456 -- 发布时间: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 & "条记录") 执行完毕,查看数据表,但数据替换不成功,重新打开项目后也没发现替换的数据。问题在那?
|
-- 作者:程兴刚 -- 发布时间:2019/10/13 19:34:00 -- 您的系统执行上面的代码会不会很慢? |
-- 作者:程兴刚 -- 发布时间:2019/10/13 19:34:00 -- 发示例文件! |
-- 作者:有点蓝 -- 发布时间:2019/10/13 20:00:00 -- dr=DataTables("xszxztb").SQLfind("sfzhm=\'" & dr1("身份证号码") & "\'") |
-- 作者:有点蓝 -- 发布时间: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 & "条记录") |
-- 作者:程兴刚 -- 发布时间: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 & "条记录") |
-- 作者:程兴刚 -- 发布时间:2019/10/13 20:38:00 -- 如果不是您的条件值表达式错误导致没有找到行,您的代码会耗时很长! |
-- 作者:gudao123456 -- 发布时间: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 -- 发布时间: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编辑过]
|