Foxtable(狐表)用户栏目专家坐堂 → [求助]SQLCommand问题(还没解决)


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

主题:[求助]SQLCommand问题(还没解决)

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


加好友 发短信
等级:幼狐 帖子:112 积分:1148 威望:0 精华:0 注册:2012/3/28 13:02:00
[求助]SQLCommand问题(还没解决)  发帖心情 Post By:2012/4/28 16:55:00 [显示全部帖子]

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = sql
dt = cmd.ExecuteReader()
If dt.DataRows.Count=0 Then
MessageBox.Show("无数据")
Return
Else
Tables("资产折旧").StopRedraw
Tables("资产折旧").AddNew(dt.DataRows.Count)
End If
Dim i As Integer = 0
For Each dr As DataRow In dt.DataRows  
    Dim tr As Row = Tables("资产折旧").Rows(i)
    tr("编号")=dr("编号")
    tr("类别")=dr("类别")
    tr("名称")=dr("名称")
    tr("状态")=dr("状态")
    tr("折旧原值")=dr("原值")
    tr("残值率")=dr("残值率")
    tr("折旧月数")=dr("月数") 
    i=i+1
Next
省略前后代码了,运行没有出错,就是第一次运行所有列都显示出来了,第二次运行就只能出来一半,另一半行都是空白,总行数是对的,是什么原因,大胆推测一下是不是dt = cmd.ExecuteReader()需要时间,请教了
[此贴子已经被作者于2012-4-28 17:42:46编辑过]

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


加好友 发短信
等级:幼狐 帖子:112 积分:1148 威望:0 精华:0 注册:2012/3/28 13:02:00
  发帖心情 Post By:2012/4/29 10:01:00 [显示全部帖子]

由于我把资产资料都录进去了,也属于公司机密吧,所以不方便上传项目,我的代码是基本上能显示一半行,一半行是空,总行数是对的,小猪鑫鑫的代码是只能显示最后一行,其他都是空的,总行数也是对的,(在此非常感谢小猪鑫鑫的无私帮助)。我有加了些判断,代码如下:

If dt.DataRows.Count>0 Then
Do While dt.DataRows(0)("编号") IsNot Nothing
For Each dr As DataRow In dt.DataRows  
    Dim tr As Row = Tables("资产折旧").addnew
    tr("编号")=dr("编号")
    tr("类别")=dr("类别")
    tr("名称")=dr("名称")
    tr("状态")=dr("状态")
    tr("折旧原值")=dr("原值")
    tr("残值率")=dr("残值率")
    tr("折旧月数")=dr("月数") 
        If tr.IsNull("编号") Then
        MessageBox.show("没有")
        End If
Next
Exit Do
Loop
   Else
   MessageBox.Show("无此店数据")
   Return
End If
结果还是一样,没有弹出提示,也没有弹出错误,只显示最后一行,其他行都是空的

[此贴子已经被作者于2012-4-29 10:13:04编辑过]

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


加好友 发短信
等级:幼狐 帖子:112 积分:1148 威望:0 精华:0 注册:2012/3/28 13:02:00
  发帖心情 Post By:2012/4/29 10:17:00 [显示全部帖子]

怎么看代码都没有问题,实际运行也没有弹出问题提示,但就是显示不了,会不会是软件的bug

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


加好友 发短信
等级:幼狐 帖子:112 积分:1148 威望:0 精华:0 注册:2012/3/28 13:02:00
  发帖心情 Post By:2012/4/29 14:17:00 [显示全部帖子]

在不断的增减代码的测试中发现是由于下面的一段代码导致的问题,这段代码在上面代码之后

Dim t As Table = Tables("资产折旧")
Dim g As SubtotalGroup
t.SubtotalGroups.Clear()
t.GroupAboveData = False
t.TreeVisible = True
t.SpillNode = True

g = New SubtotalGroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "类别"
g.TotalOn = "原值,本月折旧,净值"
g.Caption = "{0} 小计"
t.SubtotalGroups.Add(g)

g = New SubtotalGroup
g.Aggregate = AggregateEnum.Sum
g.GroupOn = "*"
g.TotalOn = "原值,本月折旧,净值"
g.Caption = "总计"
t.SubtotalGroups.Add(g)

t.Subtotal()

 


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


加好友 发短信
等级:幼狐 帖子:112 积分:1148 威望:0 精华:0 注册:2012/3/28 13:02:00
  发帖心情 Post By:2012/4/29 15:15:00 [显示全部帖子]

原以为在代码最前面加上:Tables("资产折旧").ClearSubtotal 就可以了,还是不行,郁闷,烦不了

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


加好友 发短信
等级:幼狐 帖子:112 积分:1148 威望:0 精华:0 注册:2012/3/28 13:02:00
  发帖心情 Post By:2018/11/13 19:26:00 [显示全部帖子]

此贴对任何人无用,请版主帮忙删帖,谢谢

 回到顶部