Foxtable(狐表)用户栏目专家坐堂 → 请教:下面的代码如何修改?


  共有546人关注过本帖树形打印复制链接

主题:请教:下面的代码如何修改?

帅哥哟,离线,有人找我吗?
有点蓝
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111325 积分:566671 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/4 9:48:00 [显示全部帖子]

Foxtable没有SqlDataReader 这种东西,cmd.ExecuteReader返回的是一个Foxtable的datatable,注意Foxtable的datatable和.net的datatable不是一回事,不要混用

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111325 积分:566671 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/4 10:01:00 [显示全部帖子]

我看不懂这些代码,没法改。建议先忘记.net那套东西,全部按Foxtable的用法使用:http://www.foxtable.com/webhelp/topics/0696.htm

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111325 积分:566671 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/4 11:26:00 [显示全部帖子]

要实现什么功能?代码有什么问题?

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111325 积分:566671 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/4 12:05:00 [显示全部帖子]

去掉循环,直接使用不就行了

……
Dim d As Date = Date.Now 
Dim cmd As New SQLCommand 
Dim dt2 As DataTable 
cmd.ConnectionName = "shujuyuan" 
 
去掉循环 For Each r As DataRow In dt.DataRows 
    Dim errorCount As Integer = 0 
 
    ' 查询条件1 
    cmd.CommandText = "SELECT top 1 * from {脱贫户监测户信息表} as a where 工资性收入 > 0 and 劳动技能 in('普通劳动力', '技能劳动力','弱劳动力或半劳动力') and not exists(select * from {脱贫户监测户信息表} as b where a.户编号=b.户编号 and 务工所在地 is not null)" 
    dt2 = cmd.ExecuteReader() 
    Dim tp As TimeSpan = Date.Now - d 
    Output.Show(tp.TotalSeconds) 
    Output.Show("Count=" & dt2.DataRows.Count) 
    d = Date.Now 
 
    ' 错误信息1 
    If dt2.DataRows.Count > 0 Then 
        dt.LoadFilter = "证件号码 in (select 证件号码 from {脱贫户监测户信息表} as a where 工资性收入 > 0 and 劳动技能 in('普通劳动力', '技能劳动力','弱劳动力或半劳动力') and not exists(select * from {脱贫户监测户信息表} as b where a.户编号=b.户编号 and 务工所在地 is not null))" 
        dt.Load() 
        dt.ReplaceFor("错误信息1", "脱贫户和监测户有工资性收入,但家庭成员无务工监测信息") 
dt.save
        errorCount += dt2.DataRows.Count 
    End If 
……错误信息2 参考错误信息1 改
[此贴子已经被作者于2024/12/4 12:05:17编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111325 积分:566671 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/4 13:32:00 [显示全部帖子]

条件都不一样,不可能被覆盖

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111325 积分:566671 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/4 13:46:00 [显示全部帖子]

有个问题,错误信息1这些是临时列,重新加载后就没有了,改为数据列吧

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111325 积分:566671 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/4 14:38:00 [显示全部帖子]

看11楼

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111325 积分:566671 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/4 16:09:00 [显示全部帖子]

把错误信息1这些列改为可以保存数据的数据列,不要使用临时列

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111325 积分:566671 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/5 9:03:00 [显示全部帖子]

麻烦使用数据列,不要使用临时列。如果不行让用户肯定这些错误信息列,平时隐藏即可

如果要使用临时列,只能遍历所有行逐行判断处理,数据多肯定非常慢

 回到顶部
帅哥哟,离线,有人找我吗?
有点蓝
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:111325 积分:566671 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2024/12/5 9:13:00 [显示全部帖子]

……
For Each r As DataRow In dt.DataRows 
    Dim errorCount As Integer = 0
    ' 查询条件1 
    cmd.CommandText = "SELECT count(户编号) from {脱贫户监测户信息表} as a where 工资性收入 > 0 and 劳动技能 in('普通劳动力', '技能劳动力','弱劳动力或半劳动力') and not exists(select * from {脱贫户监测户信息表} as b where a.户编号=b.户编号 and 务工所在地 is not null) and a.户编号='" & r("户编号") & "'
        ' 错误信息1 
    If cmd.ExecuteScalar() > 0 Then
        r("错误信息" & errorCount) = "脱贫户和监测户有工资性收入但家庭成员无务工监测信息" 
    End If 
errorCount += 1

    ' 查询条件2 
……

 回到顶部
总数 21 1 2 3 下一页