以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]帮我看一下代码,问题出在哪里  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=42081)

--  作者:dycjj
--  发布时间:2013/11/3 23:12:00
--  [求助]帮我看一下代码,问题出在哪里
If e.DataCol.Name = "同时开通_手机银行"
    Dim dr As DataRow = DataTables("手机银行").AddNew
    For Each dc As DataCol In DataTables("手机银行").DataCols
        If e.DataRow("同时开通_手机银行") = True Then
            dr(dc.Name) = e.DataRow(dc.Name)
        Else
            dr(dc.Name) = Nothing
        End If
    Next
End If
提示:“同时开通_手机银行” 这是一个逻辑列,
        当我勾选这个逻辑列时,数据能正常复制过去,但是当我取消勾选时,复制到另一个表的这一行数据依然还存在
我的意思是,当我取消勾选时,复制过去的这一条数据也消失。问题出在哪里呢,请大侠们帮我看一下。

--  作者:Bin
--  发布时间:2013/11/4 8:38:00
--  

If e.DataCol.Name = "同时开通_手机银行"
  If e.DataRow("同时开通_手机银行") = True Then
    Dim dr As DataRow = DataTables("手机银行").AddNew
    For Each dc As DataCol In DataTables("手机银行").DataCols
            dr(dc.Name) = e.DataRow(dc.Name)
    Next
else
  dim dr as DataRow=DataTables("手机银行").Find("手机号码=\'" & e.datarow("手机号码") & "\'")    \'这里假设唯一标识列为手机号码
  if dr isnot nothing then
     dr.delete
  end if
end if
End If
[此贴子已经被作者于2013-11-4 8:38:09编辑过]

--  作者:dycjj
--  发布时间:2013/11/5 22:33:00
--  
Bin总,多谢的你热心帮助,不过我这里还是遇到了问题,因为我这是一个计价产品的登记,我只是登记一条记录而已,并不需要输入手机号吗,所以在两个表之间,几乎没有相同的标失,本来我想用你的代码通过客户姓名来作为相同的标失,可是我一想,不行啊,万一有同名的怎么办,且不是会出现有些记录删除不了,所以,还得用其它的法子