以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]请问这是怎么回事? (http://foxtable.com/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 -- 今天没有拷项目文件回来,明天试试看,先谢谢狐狸爸爸! |