您的位置:程序门 -> .net技术 -> vb.net



listview控件与数据库操作出错,帮忙


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


listview控件与数据库操作出错,帮忙[已结贴,结贴人:cc010]
发表于:2007-01-27 22:05:49 楼主
根据数据库内容来添加listview的选项  
代码如下,其中plansview为listvie控件  
sub   replans()   '刷新listview列表  
dim   delplans   as   object  
for   each   delplans   in   plansview.items   '此循环为清除现有项目
delplans.remove()  
next  
dim   conn   as   new   system.data.sqlclient.sqlconnection(getconnstr())  
conn.open()  
dim   sqlstr1   as   string  
sqlstr1   =   "select   *   from   cop_plans   "  
dim   cmd   as   new   system.data.sqlclient.sqlcommand  
cmd.commandtext   =   sqlstr1  
cmd.connection   =   conn  
dim   dread   as   system.data.sqlclient.sqldatareader  
dread   =   cmd.EXECutereader  
dim   tempitem   as   object  
while   dread.read()  
if   dread.item( "p_ok ")   =   true   then  
tempitem   =   plansview.items.add(dread.item( "id "),   1)  
else  
tempitem   =   plansview.items.add(dread.item( "id "),   2)  
end   if  
tempitem.subitems.add(dread.item( "p_name "))  
tempitem.subitems.add(dread.item( "p_mode "))  
tempitem.subitems.add(dread.item( "p_cyc "))  
tempitem.subitems.add(dread.item( "p_ip "))  
tempitem.subitems.add(cstr(dread.item( "p_runtime ")))  
if   dread.item( "p_ok ")   =   true   then  
tempitem.subitems.add( "yes ")  
else  
tempitem.subitems.add( "no ")  
end   if  
end   while  
dread.close()  
conn.close()  
dread   =   nothing  
conn   =   nothing  
end   sub  

当每删除一条记录时就执行一次以上过程来刷新列表,问题如下:
1、仅仅删除数据库记录或者仅仅执行刷新过程不会出错
2、在删除记录然后立即执行刷新过程时时偶尔会出错,删除最后一行记录并刷新列表时一定出错。
这样我估计是以下代码的问题
dim   delplans   as   object  
for   each   delplans   in   plansview.items  
delplans.remove()  
next  
请教各位了.  
出错提示如下:  
未处理的“system.argumentoutofrangeexception”类型的异常出现在   system.windows.forms.dll   中。  

其他信息:   指定的参数已超出有效值的范围。
发表于:2007-01-27 22:13:111楼 得分:20
你的listview有几列?
发表于:2007-01-27 22:24:132楼 得分:0
7列,设计时定义好的!
发表于:2007-01-27 22:28:393楼 得分:0

dim   delplans   as   object  
for   each   delplans   in   plansview.items   '此循环为清除现有项目
delplans.remove()  
next  
改成:
delplans.clear()试试。
发表于:2007-01-27 22:33:234楼 得分:0
这样一来把我所有列都清除啦,再执行数据添加则什么也没有.

还有那个错误只有在数据删除时出,如果我更改数据库则什么问题也没有

如果我不是这样刷新,而是在删除数据的后面仅仅删除这条项目也会出错
我现在试一下先删除项目再删除数据库
发表于:2007-01-27 22:36:495楼 得分:0
弄错了,应该是:
delplans.items.clear()
发表于:2007-01-27 22:40:216楼 得分:0
好的,我再试一下,现在已经确认是操作listvlie时出错啦
以上语法不对.没有这个属性哈
发表于:2007-01-27 22:46:317楼 得分:0
呵呵,不会吧,仔细检查一下,或者自己敲入,看看自动出来的提示中有没有。delplans.items.clear()
发表于:2007-01-27 22:50:548楼 得分:0
改了,出错啊.这个不会有提示输入的

对了,是不是我清楚列表的代码有问题,但是数据刷新时候又正确.....
而且我发现在删除倒数3和最后一个时候务必出错
发表于:2007-01-28 00:17:279楼 得分:0
谢谢朋友们,终于解决了,主要是我使用快捷菜单不当,对于选中项目出现了差错.
发表于:2007-08-15 16:21:1910楼 得分:0
555


快速检索

最新资讯
热门点击