以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]SQLCommand问题(还没解决) (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=19144) |
-- 作者:mositu -- 发布时间:2012/4/28 16:55:00 -- [求助]SQLCommand问题(还没解决) 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 -- 发布时间:2012/4/28 17:41:00 -- 你只能发项目让人检验后证明你这个问题存在了。
|
-- 作者:小猪鑫鑫 -- 发布时间:2012/4/28 20:44:00 -- cmd.CommandText = sql dt = cmd.ExecuteReader() 楼主:你的第一行的命令代码只有“sql”三个字符,没有内容啊 |
-- 作者:小猪鑫鑫 -- 发布时间:2012/4/29 8:49:00 -- Dim cmd As New SQLCommand tr("编号")=dr("编号") next MessageBox.Show("无数据") |
-- 作者:mositu -- 发布时间:2012/4/29 10:01:00 -- 由于我把资产资料都录进去了,也属于公司机密吧,所以不方便上传项目,我的代码是基本上能显示一半行,一半行是空,总行数是对的,小猪鑫鑫的代码是只能显示最后一行,其他都是空的,总行数也是对的,(在此非常感谢小猪鑫鑫的无私帮助)。我有加了些判断,代码如下: If dt.DataRows.Count>0 Then [此贴子已经被作者于2012-4-29 10:13:04编辑过]
|
-- 作者:mositu -- 发布时间:2012/4/29 10:17:00 -- 怎么看代码都没有问题,实际运行也没有弹出问题提示,但就是显示不了,会不会是软件的bug |
-- 作者:mr725 -- 发布时间:2012/4/29 10:59:00 -- 检查一下其他与增加行有关的表事件中的代码· |
-- 作者:mositu -- 发布时间:2012/4/29 14:17:00 -- 在不断的增减代码的测试中发现是由于下面的一段代码导致的问题,这段代码在上面代码之后 Dim t As Table = Tables("资产折旧") g = New SubtotalGroup g = New SubtotalGroup t.Subtotal()
|
-- 作者:jianjingmaoyi -- 发布时间:2012/4/29 14:27:00 -- 上面的代码没有问题,如果做统计,你可以用查询表的sql语句试试. |
-- 作者:mositu -- 发布时间:2012/4/29 15:15:00 -- 原以为在代码最前面加上:Tables("资产折旧").ClearSubtotal 就可以了,还是不行,郁闷,烦不了 |