以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]问题求解  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=162076)

--  作者:fczhaobo
--  发布时间:2021/4/4 22:09:00
--  [求助]问题求解
第一段代码:    
    Dim dr As DataRow = DataTables("预报名表").SQLFind("订单编号=\'" & s &  "\' and 是否支付成功 is null ")
        If dr IsNot Nothing Then
        dr("是否支付成功") = "支付成功"
        dr.Save
        End If


第二段代码:
        Dim cmd As new SQL Command
        cmd.Connecti
        Dim dt As DataTable
        cmd.Com mandText = "S elect * F rom {预报名表} W HERE 订单编号=\'" & s &  "\' and 是否支付成功 is null "
        dt = cmd.ExecuteReader(True) \'记得将参数设置为True
        If dt.DataRows.Count > 1 Then
            dt.DataRows(0)("是否支付成功") = "支付成功"
            \'dt.DataRows(1).Delete() \'删除用代码
            dt.Save()
        End If
        \'
问题是:第一段代码能保存,第二段代码保存不了。

--  作者:304376480
--  发布时间:2021/4/4 22:32:00
--  
你那个 dt 是个临时表.....不能保存吧,

[此贴子已经被作者于2021/4/4 22:54:35编辑过]

--  作者:chen37280600
--  发布时间:2021/4/5 13:05:00
--  
If dt.DataRows.Count > 1 Then

应该是=1吧,查出来是1行,>1行就是要求要2行以上,
所以你的if里压根就没去执行什么删除和save

--  作者:fczhaobo
--  发布时间:2021/4/5 21:11:00
--  
以下是引用chen37280600在2021/4/5 13:05:00的发言:
If dt.DataRows.Count > 1 Then

应该是=1吧,查出来是1行,>1行就是要求要2行以上,
所以你的if里压根就没去执行什么删除和save

厉害!谢谢了!