以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  在数据替换中如何计算替换成功记录数?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=141920)

--  作者:gudao123456
--  发布时间:2019/10/14 13:46: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 显然不是替换了的行数
如何才能知道替换了几条?另外想在替换过的行做个标记,即成功的“学生信息导入样表” 中的“是否替换成功”列中做记true
,dr1("是否替换成功")=true 又插下那呢? 谢谢!

--  作者:有点蓝
--  发布时间:2019/10/14 14:00:00
--  
For Each dr1 As DataRow In DataTables("学生信息导入样表").DataRows
            For y=0 To lms.count-1
                i=i + DataTables("xszxztb").SQLReplaceFor(lms(y),dr1(nms(y)),"sfzhm= \'" & dr1("身份证号码") & "\'")
            Next
        Next

SQLReplaceFor会返回一个整数,表示合计有多少行的值被替换了。

--  作者:gudao123456
--  发布时间:2019/10/14 14:38:00
--  
谢谢,但那个标记如何解决呢?应把那个标记放在才好? dr1("是否已替换成功")=true 这个放哪?
[此贴子已经被作者于2019/10/14 14:40:49编辑过]

--  作者:有点蓝
--  发布时间:2019/10/14 14:41:00
--  
For Each dr1 As DataRow In DataTables("学生信息导入样表").DataRows
            For y=0 To lms.count-1
                i=i + DataTables("xszxztb").SQLReplaceFor(lms(y),dr1(nms(y)),"sfzhm= \'" & dr1("身份证号码") & "\'")
            Next
dr1("是否替换成功")=true 
        Next

--  作者:gudao123456
--  发布时间:2019/10/14 21:36:00
--  
谢谢!
--  作者:gudao123456
--  发布时间:2019/10/15 15:48:00
--  
老师,那个标志还是没有解决。因为它不管是否替换成功,它都dr1(“是否替换成功”)=ture  怎么改呢,谢谢!
--  作者:有点蓝
--  发布时间:2019/10/15 16:17:00
--  
怎么样才算是替换成功?
--  作者:gudao123456
--  发布时间:2019/10/15 16:45:00
--  
我的要求是,比对两个表的身份证号码,如果相同,就用样表中所选择中的列的内容替换系统中表的内容,代码已经替换成功,就是在样表做比对成功的记号不准确,把所有的都记成“成功了”,即每一行都 dr1("是否替换成功")=true。我特意设定了一列身份证号码不同的,它没有替换(说明达到要求),但它在样表“是否替换成功”也标记成“true”了,这一点不符合我的要求,谢谢!
[此贴子已经被作者于2019/10/15 16:46:54编辑过]

--  作者:有点蓝
--  发布时间:2019/10/15 16:48:00
--  
比对两个表的身份证号码的代码在哪里?
--  作者:有点蓝
--  发布时间:2019/10/15 16:52:00
--  
在这个意思?
DataTables("学生信息导入样表").StopRedraw
Dim i ,y,k As Integer = 0
Dim dr As DataRow
For Each dr1 As DataRow In DataTables("学生信息导入样表").DataRows
    k=0
    For y=0 To lms.count-1
        k = DataTables("xszxztb").SQLReplaceFor(lms(y),dr1(nms(y)),"sfzhm= \'" & dr1("身份证号码") & "\'")
    Next
    dr1("是否替换成功") = k > 0
    i=i+k
    
Next