以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]请问这是怎么回事?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=9740)

--  作者:huntkey
--  发布时间:2011/5/5 21:48:00
--  [求助]请问这是怎么回事?

 

窗口事件:Afterload

Dim tv As WinForm.TreeView =Forms("DepartFrm").Controls("TreeView1")

Dim nd0,nd1,nd2,nd3,nd4,nd5 As WinForm.TreeNode

 

Dim cmd As new sqlcommand

Dim dt As  DataTable

cmd.c

cmd.commandtext="select * from {TDepart} where [id] <> """

dt=cmd.ExecuteReader()

Dim fs As Integer

 

tv.Nodes.Clear   \'清空原来的节点::::::::::

For Each dr As DataRow In dt.DataRows

       fs = dr("DLev")

       Select Case fs

           Case 0

                nd0 = tv.Nodes.Add("",dr("Name").trim())

           Case 1

                nd1 = nd0.Nodes.Add("",dr("Name").trim())

           Case 2

                nd2 = nd1.Nodes.Add("",dr("Name").trim())

           Case 3

                nd3 = nd2.Nodes.Add("",dr("Name").trim())

           Case 4

                nd4 = nd3.Nodes.Add("",dr("Name").trim())

           Case 5

                nd5 = nd4.Nodes.Add("",dr("Name").trim())

       End Select

 Next

 

运行后提示如下错误:system.NullReferenceException:Object reference not set to an instance of an object. at UserCode AfterLoad_e09e7967(FormEventArgs e)


--  作者:huntkey
--  发布时间:2011/5/5 21:50:00
--  

上面有一行代码写错了:

cmd.c

 应该是

cmd.connectionname="MpMg"


--  作者:狐狸爸爸
--  发布时间:2011/5/5 21:51:00
--  

你能确保nd0\\nd1\\nd2\\nd3\\nd3\\nd5这些变量在使用前已经赋值了吗?

问题基本可以肯定出在这里。


--  作者:huntkey
--  发布时间:2011/5/5 22:12:00
--  
使用之前没有赋值啊!
--  作者:狐狸爸爸
--  发布时间:2011/5/5 22:14:00
--  

没有赋值,肯定就会出现一楼所说的错误。

 


--  作者:huntkey
--  发布时间:2011/5/5 22:40:00
--  

这样行吗?

nd0 = tv.Nodes.Add("dr("id"),dr("Name").trim())


--  作者:huntkey
--  发布时间:2011/5/5 22:47:00
--  
今天没有拷项目文件回来,明天试试看,先谢谢狐狸爸爸