日期:2014-05-20  浏览次数:20827 次

我不知道问题在那,大家帮帮忙~~
private   void   getTree(string   id,TreeNode   nodes)
        {
                int   j   =   0;
                OleDbConnection   dbcon   =   (OleDbConnection)Application[ "dbcon "];//数据链接
org_no   就是信息id号节点信息,parentid是父节点
                OleDbCommand   dbcom2   =   new   OleDbCommand( "select   org_name,org_no,parentid   from   tbl_org     where   parentid   = ' "   +   id.Trim()+   " '   order   by   parentid ",   dbcon);
                OleDbDataReader   dr2   =   dbcom2.ExecuteReader();
                while   (dr2.Read())
                {

                        //foreach(TreeNode   t   in   tv1.Nodes){}
                        nodes.ChildNodes.Add(new   TreeNode(dr2.GetValue(0).ToString().Trim()));
                       
                   
                        getTree(dr2.GetValue(1).ToString().Trim(),nodes.ChildNodes[j]);
                       
                   
                       
                }
             
                j   =   j   +   1;

                dbcom2.Dispose();
                dr2.Close();
                dr2.Dispose();
                       
        }

------解决方案--------------------
因为你递归要打开多个OleDbDataReader

但是这是不允许的,改成使用dataset

*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)

最新版本:20070212

http://www.cnblogs.com/feiyun0112/archive/2006/09/20/509783.html
------解决方案--------------------
DataReader对Connection是独占的...

要么为每一个DataReader分配一个Connection,要么换用别的方式...