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


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

主题:[求助]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编辑过]

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/4/28 17:41:00 [只看该作者]

你只能发项目让人检验后证明你这个问题存在了。

 


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


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
  发帖心情 Post By:2012/4/28 20:44:00 [只看该作者]

cmd.CommandText = sql
dt = cmd.ExecuteReader()
楼主:你的第一行的命令代码只有“sql”三个字符,没有内容啊

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


加好友 发短信
等级:四尾狐 帖子:832 积分:5867 威望:0 精华:6 注册:2011/5/27 11:41:00
  发帖心情 Post By:2012/4/29 8:49:00 [只看该作者]

Dim cmd As New SQLCommand
Dim dt As DataTable
cmd.CommandText = sql
dt = cmd.ExecuteReader()
If dt.DataRows.Count>0 Then
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("月数") 

next
   
else

   MessageBox.Show("无数据")
end if
楼主:因没原文件,所以没法测试,但你可以试一下这个


 回到顶部
帅哥哟,离线,有人找我吗?
mositu
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | 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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


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

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

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


加好友 发短信 一级勋章
等级:MVP荣誉狐 帖子:5154 积分:31434 威望:0 精华:8 注册:2008/9/8 12:27:00
  发帖心情 Post By:2012/4/29 10:59:00 [只看该作者]

检查一下其他与增加行有关的表事件中的代码·


 回到顶部
帅哥哟,离线,有人找我吗?
mositu
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | 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()

 


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


加好友 发短信
等级:三尾狐 帖子:760 积分:4714 威望:0 精华:0 注册:2011/12/17 18:37:00
  发帖心情 Post By:2012/4/29 14:27:00 [只看该作者]

上面的代码没有问题,如果做统计,你可以用查询表的sql语句试试.

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


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

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

 回到顶部
总数 12 1 2 下一页