hur.cn - 华软网

 热门搜索

空对象引用的问题(null object reference)

  作者:未知    来源:网络    更新时间:2019/5/10
有这样一段代码,用的是数据存储
openwithparm(w_unit_list,s)
Datastore dw
dw= create Datastore
dw=message.PowerObjectParm
if isnull(dw)=false then
int irow,rows
rows=dw.rowcount()
for irow=1 to rows
if irow =1 then
this.object.company[row]=dw.object.company[1]
else
int ii
ii=this.insertrow(0)
       this.object.company[ii]=dw.object.company[irow]
end if
next
end if
用控制菜单上的叉叉关闭窗口时,会报错:
error:null object reference at line 15 in buttonclicked event of object dw_3 of w_add_item.
15行是:rows=dw.rowcount()这一句
------华软网友回答------
试试setTransObject(sqlca)
------华软网友回复------
极可能是你窗口变量没有传送过来
另:用IsValid(dw)=True 来判断,不是Isnull()
------华软网友回复------
试下:
Datastore dw
dw= create Datastore
dw=message.PowerObjectParm
-----------------------------改成
datawindow dw
if isvalid(message.PowerObjectParm) then
   dw = message.PowerObjectParm
end if
dw.settransobject(sqlca)
dw.retrieve()
-----------------------
int irow,rows
rows=dw.rowcount().........
------华软网友回复------
关闭时候报错
为什么要把这段代码放到关闭的事件下面?
------华软网友回复------
楼上,这段代码并非放在close事件下面
是在数据窗口的buttonclicked事件下
------华软网友回复------
message.PowerObjectParm是datawindow照旧datastore?如果是传datastore,那么:
-----------
Datastore dw
dw= create Datastore
if isvalid(message.PowerObjectParm) then
   dw=message.PowerObjectParm
   ....
追踪下,看是否传过来,从报错看,你传的对象不存留``
------华软网友回复------
谢谢v888(aosgzi),按照你的指示,我解决了这个问题.      
华软声明:本内容来自网络,如有侵犯您版权请来信指出,本站立即删除。