以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  下段条件删除行代码为什么不执行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=8350)

--  作者:lpxjw_zyl
--  发布时间:2010/10/11 11:31:00
--  下段条件删除行代码为什么不执行

Dim cmd As New SQLCommand
Dim dt As datatable
cmd.C
cmd.CommandText = "SELECT * From {学校信息}"
dt = cmd.ExecuteReader()


Dim zxm As String = DataTables("单位注册").Datarows(0)("注册镇乡") \'定义镇乡单位名

\'删除不符合的行
For Each dr4 As DataRow In DataTables("A统1").DataRows
    Dim dr5 As DataRow = dt.Find("[校名] = \'" & dr4("单位") & "\' And [乡镇] <>  \'" & zxm & "\'")
    Dim dr17 As DataRow = dt.Find("[校名] <>\'" & dr4("单位") & "\'")
    If dr5 isnot Nothing Then ‘删除单位在dt 表中能够找到,可不属于规定镇乡的学校
        dr4.Delete()
    Elseif dr4.isnull("单位") Then ’删除表中的空行
        dr4.Delete()
    Elseif dr17 isnot Nothing Then ‘删除单位在dt 表中不能够找到

        dr4.Delete()
    End If
Next

 

下段条件删除行代码为什么全部删除了,不按规定删除呢?


--  作者:baoxyang
--  发布时间:2010/10/11 11:50:00
--  

第一,[乡镇] <>  \'" & zxm & "\'") 此代码中变量,是从哪里取得的。上述代码找不到。

第二,

    Dim dr5 As DataRow = dt.Find("[校名] = \'" & dr4("单位") & "\' And [乡镇] <>  \'" & zxm & "\'")
    Dim dr17 As DataRow = dt.Find("[校名] <>\'" & dr4("单位") & "\'")
    If dr5 isnot Nothing Then ‘删除单位在dt 表中能够找到,可不属于规定镇乡的学校
        dr4.Delete()
    Elseif dr4.isnull("单位") Then ’删除表中的空行
        dr4.Delete()
    Elseif dr17 isnot Nothing Then ‘删除单位在dt 表中不能够找到

        dr4.Delete()
    End If
最好使用“delete from {学校信息} where [校名] <> "\'& dr4("单位") & \'" And [乡镇] <>  \'" & zxm & "\'”