以文本方式查看主题 - Foxtable(狐表) (http://www.foxtable.com/bbs/index.asp) -- 专家坐堂 (http://www.foxtable.com/bbs/list.asp?boardid=2) ---- 将集合数据填充到姓名列,重复填充2000多行,什么原因? (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=145058) |
||||
-- 作者:hrw68529 -- 发布时间:2020/1/7 8:41:00 -- 将集合数据填充到姓名列,重复填充2000多行,什么原因? 目标:要求 将值班排班表中的“处级带班_姓名,科级带班_姓名,值班人员_姓名”三列的人员姓名,取唯一值,填写到“补助测试表”姓名列,下列代码出现错误,填充了2000多行,什么原因?请专家指导。谢谢 Dim Vals As List(of String()) Vals = DataTables("值班排班表").GetValues("处级带班_姓名|科级带班_姓名|值班人员_姓名") For i As Integer = 0 To Vals.Count - 1 Dim dr As DataRow = DataTables("补助测试表").AddNew() dr("姓名") = Vals(i)(0) & vbcrlf & Vals(i)(1) & vbcrlf & Vals(i)(2) Next |
||||
-- 作者:有点蓝 -- 发布时间:2020/1/7 9:04:00 -- 请上传具体实例说明 |
||||
-- 作者:hrw68529 -- 发布时间:2020/1/7 9:28:00 -- 实例:
|
||||
-- 作者:有点蓝 -- 发布时间:2020/1/7 9:51:00 -- Dim Vals As List(of String) Vals = DataTables("值班排班表").GetValues("处级带班_姓名") For Each name As String In DataTables("值班排班表").GetValues("科级带班_姓名") If Vals.Contains(name) = False Then vals.Add(name) Next For Each name As String In DataTables("值班排班表").GetValues("值班人员_姓名") If Vals.Contains(name) = False Then vals.Add(name) Next Dim dr As DataRow For Each name As String In vals dr = DataTables("补助测试表").AddNew dr("姓名") = name dr("次数") = DataTables("值班排班表").GetValues("值班日期|处级带班_姓名","处级带班_姓名=\'" & name & "\'").Count + DataTables("值班排班表").GetValues("值班日期|科级带班_姓名","科级带班_姓名=\'" & name & "\'").Count + DataTables("值班排班表").GetValues("值班日期|值班人员_姓名","值班人员_姓名=\'" & name & "\'").Count Next
|
||||
-- 作者:hrw68529 -- 发布时间:2020/1/7 10:20:00 -- 有点蓝:谢谢,但生成数据,一下生成了1765行,重复生成了好多行 |
||||
-- 作者:hrw68529 -- 发布时间:2020/1/7 10:24:00 -- 生成了11765行,一万多行, |
||||
-- 作者:有点蓝 -- 发布时间:2020/1/7 10:24:00 -- 不可能,除非数据本身就有问题。上传有问题的实例说明 |
||||
-- 作者:hrw68529 -- 发布时间:2020/1/7 10:31:00 -- 问题实例:
|
||||
-- 作者:hrw68529 -- 发布时间:2020/1/7 10:36:00 -- 把代码放在哪个里边,我放在了PrepareEdit中 |
||||
-- 作者:有点蓝 -- 发布时间:2020/1/7 10:39:00 -- 这种代码适合设计一个窗口,放到按钮中执行。 代码不是随便找个地方写入就可以使用的。每个事件都有自己的使用场景,不是随便乱用的
|