以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 当前数据永远在第一行,怎么变通为遍历所有行,当信息类别和信息内容等不为空的时候,新增告知内容列表,且与当前新增记录行匹配对应数据 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=135619) |
-- 作者:李孝春 -- 发布时间:2019/5/30 12:37:00 -- 当前数据永远在第一行,怎么变通为遍历所有行,当信息类别和信息内容等不为空的时候,新增告知内容列表,且与当前新增记录行匹配对应数据 当前数据永远在第一行,怎么变通为遍历所有行,当信息类别和信息内容等不为空的时候,新增告知内容列表,且与当前新增记录行匹配对应数据 下列代码能够实现除了信息内容字段之外的所有值的正确显示,信息内容永远是数据后台默认选择的第一条数据内容,无法根据新增内容进行对应变更。 下面代码写在内部函数中,并在移动开发中直接调用内部函数进行对应数据的读写! 麻烦各位老师指导一下 谢谢!【经过判断 红色部分代码定位及写法有点问题】 代码如下: Dim br As Row=Tables("信息列表").Current If br("信息类别") <>"" Then If br("信息内容") <>"" Then Dim Vals As List(of String) If br("发送人员") <>"" Then Dim filter As String = "1=2" For Each s As String In br("发送人员").split(",") filter = filter & " or [姓名] like \'%" & s & "%\' " Next Vals = DataTables("干警信息").sqlGetValues("姓名",filter ) \'MessageBox.Show("发送人员 & Vals") Else If br("发送对象") <>"" Then Dim filter As String = "1=2" For Each s As String In br("发送对象").split(",") filter = filter & " or [身份属性] like \'%" & s & "%\' " Next Vals = DataTables("干警信息").sqlGetValues("姓名",filter ) Else If br("关注领域") <>"" Then Dim filter As String = "1=2" For Each s As String In br("关注领域").split(",") filter = filter & " or [关注领域] like \'%" & s & "%\' " Next Vals = DataTables("干警信息").sqlGetValues("姓名",filter ) End If For i As Integer = 0 To Vals.Count - 1 Dim dr As DataRow = DataTables("告知内容").AddNew() dr("信息时间") = Date.Now dr("姓名") = Vals(i) dr("信息内容")=br("信息内容") dr("是否告知")= "否" dr("发送对象")= br("发送对象") dr("发送人员")= br("发送人员") dr("发送平台")= br("发送平台") dr("信息类别")= br("信息类别") dr("拟发送时间")= br("拟发送时间") dr("序号")=br("_identify") dr("操作单位")=_usergroup dr.save Next Else If br("发送对象")="" Then MessageBox.Show("发送对象\\发送人员\\关注领域必须选择一个") Else If br("发送人员")="" Then MessageBox.Show("发送对象\\发送人员\\关注领域必须选择一个") Else If br("关注领域")="" Then MessageBox.Show("发送对象\\发送人员\\关注领域必须选择一个") End If MessageBox.Show("信息内容不能为空!") End If Else MessageBox.Show("信息类别必须选择一个") End If
|
-- 作者:有点甜 -- 发布时间:2019/5/30 15:06:00 -- 是不是你表名写错了
Dim br As Row=Tables("信息列表").Current
改成
Dim br As Row=Tables("窗口表名").Current |
-- 作者:李孝春 -- 发布时间:2019/5/30 15:11:00 -- 回复:(有点甜)是不是你表名写错了 Dim br... 在移动端开发时候 没有窗体表哦 也没有窗体 麻烦老师指导一下 谢谢 |
-- 作者:有点甜 -- 发布时间:2019/5/30 16:01:00 -- 以下是引用李孝春在2019/5/30 15:11:00的发言:
在移动端开发时候 没有窗体表哦 也没有窗体 麻烦老师指导一下 谢谢
这个意思?
for each br As Row in Tables("信息列表").Rows \'...... next
|
-- 作者:李孝春 -- 发布时间:2019/5/30 16:33:00 -- 回复:(有点甜)以下是引用李孝春在2019/5/30 15:11:... 现在效果可以实现便利了 但是却总是把数据库有的数据全部再次重复导入了 第二次新增一条记录 就会把第一次记录和第二次新的记录 又再次写入告知内容表 第三次新增一条记录 就会吧第一次 第二次 及新增记录 再次写入告知内容表 要求实现 重复记录不再新增
|
-- 作者:有点甜 -- 发布时间:2019/5/30 16:40:00 -- Dim dr As DataRow = DataTables("告知内容").AddNew()
改成
Dim dr As DataRow = DataTables("告知内容").find("信息内容 = \'" & br("信息内容") & "\'") If dr is Nothing Then dr = DataTables("告知内容").AddNew() End If |
-- 作者:李孝春 -- 发布时间:2019/5/30 16:59:00 -- 回复:(有点甜)Dim dr As DataRow = DataTables("告... 有点甜老师 现在姓名却又查不出多个了?永远只有一个姓名? 代码全部如下: For Each br As Row In Tables("信息列表").Rows If br("信息类别") <>"" Then If br("信息内容") <>"" Then Dim Vals As List(of String) If br("发送人员") <>"" Then Dim filter As String = "1=2" For Each s As String In br("发送人员").split(",") filter = filter & " or [姓名] like \'%" & s & "%\' " Next Vals = DataTables("干警信息").sqlGetValues("姓名",filter ) \'MessageBox.Show("发送人员 & Vals") Else If br("发送对象") <>"" Then Dim filter As String = "1=2" For Each s As String In br("发送对象").split(",") filter = filter & " or [身份属性] like \'%" & s & "%\' " Next Vals = DataTables("干警信息").sqlGetValues("姓名",filter ) Else If br("关注领域") <>"" Then Dim filter As String = "1=2" For Each s As String In br("关注领域").split(",") filter = filter & " or [关注领域] like \'%" & s & "%\' " Next Vals = DataTables("干警信息").sqlGetValues("姓名",filter ) End If For i As Integer = 0 To Vals.Count - 1 Dim dr As DataRow = DataTables("告知内容").find("信息内容 = \'" & br("信息内容") & "\'and 操作单位 = \'" & _usergroup & "\'") If dr Is Nothing Then dr = DataTables("告知内容").AddNew() dr("信息时间") = Date.Now dr("姓名") = Vals(i) dr("信息内容")=br("信息内容") dr("是否告知")= "否" dr("发送对象")= br("发送对象") dr("发送人员")= br("发送人员") dr("发送平台")= br("发送平台") dr("信息类别")= br("信息类别") dr("拟发送时间")= br("拟发送时间") dr("序号")=br("_identify") dr("操作单位")=_usergroup dr.save End If Next Else If br("发送对象")="" Then MessageBox.Show("发送对象\\发送人员\\关注领域必须选择一个") Else If br("发送人员")="" Then MessageBox.Show("发送对象\\发送人员\\关注领域必须选择一个") Else If br("关注领域")="" Then MessageBox.Show("发送对象\\发送人员\\关注领域必须选择一个") End If MessageBox.Show("信息内容不能为空!") End If Else MessageBox.Show("信息类别必须选择一个") End If Next 第二 有没有办法处理这个记录不重复呢?有时候网页可能不小心多次点提交 或者网速不理想时候 导致如下图 两条记录重复
[此贴子已经被作者于2019/5/30 16:59:12编辑过]
|
-- 作者:有点甜 -- 发布时间:2019/5/30 19:45:00 --
Dim dr As DataRow = DataTables("告知内容").find("信息内容 = \'" & br("信息内容") & "\'and 操作单位 = \'" & _usergroup & "\' and 姓名 = \'" & vals(i) & "\'")
|
-- 作者:李孝春 -- 发布时间:2019/5/31 11:28:00 -- 回复:(有点甜) Dim dr As DataRow = DataTa... 谢谢! |