以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  为何不是覆盖  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=100397)

--  作者:刘林
--  发布时间:2017/5/10 21:33:00
--  为何不是覆盖

Dim tb As Table = Tables("任课情况_table1")
Dim rs As List(of Row) = Tables("任课情况_table1").GetCheckedRows
Dim mm As String
If rs.Count > 0 Then \'如果存在符合条件的行
    Dim t3 As String = e.Form.Controls("textbox3").text
    If t3 > ""
        mm = t3
    Else
        mm = "888"
    End If
    messagebox.show("你为班主任统一设置的初始密码为:  " & t3 & "  请记住并要求班主任自已修改","提示",MessageBoxButtons.OK)
    Dim r1 As DataRow
    For Each r As Row In tb.getcheckedrows
        If r("班主任") > ""
            r1 = DataTables("用户").sqlFind("group = \'" & r("学校名称").trim() & "\'\' And 班级 = \'" & r("班级").trim() & "\'")
            If r1 Is Nothing Then r1 = DataTables("用户").AddNew()
            r1("name") = r("班主任")
            r1("password")= mm
            r1("group") = r("学校名称").trim()
            r1("角色") = "班主任"
            r1("姓名")= r("班主任")
            r1("是否可用") = True
            r1("班级") = r("班级").trim()
        End If
        r.Checked = False
    Next
    If DataTables("用户").HasChanges
        DataTables("用户").save()
    End If
Else
    messagebox.show("请注意,你没有勾选要设置帐号的班主任记录","提示",MessageBoxButtons.OK)
End If

 

 

 

老师,上面是想开到符合条件的记录就履盖,没找到新增,但为何会增加重复记录呢,没看出问题呢


--  作者:有点色
--  发布时间:2017/5/10 21:42:00
--  

Dim tb As Table = Tables("任课情况_table1")
Dim rs As List(of Row) = Tables("任课情况_table1").GetCheckedRows
Dim mm As String
If rs.Count > 0 Then \'如果存在符合条件的行
    Dim t3 As String = e.Form.Controls("textbox3").text
    If t3 > ""
        mm = t3
    Else
        mm = "888"
    End If
    messagebox.show("你为班主任统一设置的初始密码为:  " & t3 & "  请记住并要求班主任自已修改","提示",MessageBoxButtons.OK)
    Dim r1 As DataRow
    For Each r As Row In tb.getcheckedrows
        If r("班主任") > ""
            r1 = DataTables("用户").sqlFind("group = \'" & r("学校名称").trim() & "\'\' And 班级 = \'" & r("班级").trim() & "\'")
            If r1 Is Nothing Then r1 = DataTables("用户").AddNew()
            r1("name") = r("班主任")
            r1("password")= mm
            r1("group") = r("学校名称").trim()
            r1("角色") = "班主任"
            r1("姓名")= r("班主任")
            r1("是否可用") = True
            r1("班级") = r("班级").trim()

            r1.Save \'sqlfind的行,要马上保存
        End If
        r.Checked = False
    Next
    If DataTables("用户").HasChanges
        DataTables("用户").save()    \'这段可以不写
    End If
Else
    messagebox.show("请注意,你没有勾选要设置帐号的班主任记录","提示",MessageBoxButtons.OK)
End If


--  作者:刘林
--  发布时间:2017/5/10 21:47:00
--  
还是一个效果呢
--  作者:有点色
--  发布时间:2017/5/11 1:56:00
--  
以下是引用刘林在2017/5/10 21:47:00的发言:
还是一个效果呢

 

做个例子发上来测试。


--  作者:刘林
--  发布时间:2017/5/11 13:22:00
--  

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:教务管理.rar

帐号511011197405034877,666,用个任课情况窗口里的班主任帐号按键,不能覆盖,请老师帮看下,谢谢

 


--  作者:有点色
--  发布时间:2017/5/11 14:19:00
--  
 请贴出开发者密码,否者无法测试。
--  作者:刘林
--  发布时间:2017/5/11 14:55:00
--  

用511011197405034877,666

 


--  作者:刘林
--  发布时间:2017/5/11 14:56:00
--  
000
--  作者:刘林
--  发布时间:2017/5/11 14:56:00
--  
开发者000
--  作者:有点色
--  发布时间:2017/5/11 15:16:00
--  

 测试,并没有问题。

 

1、你用sqlFind查询的行,修改后,数据是修改在数据库那里的,你可以直接去数据库查看;

 

     或者是重新load表格;

 

     或者是,你用find查找,找不到再用sqlfind查找。

 

2、如果是重复添加行的问题,说明条件 "group = \'" & r("学校名称").trim() & "\'\' And 班级 = \'" & r("班级").trim() & "\'" 有问题,当学校名称、班级为空的时候,要用is null查找,空字符串找不到对应的行。