错误提示: 阅读器关闭时Read的尝试无效.
  代码:void BinData()
{
System.Data.IDataReader dr=cdb.SelectDep1();
while(dr.Read())
{
TreeNode node=new TreeNode();
node.Text=dr["DepName"].ToString();
System.Data.IDataReader dr2=cdb.SelectDep2((int)dr["DepID"]);
while(dr2.Read())
{
TreeNode node2=new TreeNode();
node2.Text=dr2["DepName"].ToString();
node2.NavigateUrl="admin_Dep.aspx?DepID="+dr2["DepID"].ToString();
node.Nodes.Add(node2);

}
TreeView1.Nodes.Add(node);
}
}CS 文件代码: 
     1  ..     public SqlDataReader SelectDep1()
{
SqlConnection myconnection=new SqlConnection(connstr);
string cmdtext="select * from DepB where DepNum=1";
SqlCommand mycommand=new SqlCommand(cmdtext,myconnection);
myconnection.Open();
SqlDataReader recm=mycommand.ExecuteReader();

myconnection.Close();
return recm;
}     2  .. public SqlDataReader SelectDep2(int MYDepNumClass)
{
SqlConnection myconnection=new SqlConnection(connstr);
string cmdtext="select * from DepB where DepNumClass=MYDepNUmClass and DepNum=2";
SqlCommand mycommand=new SqlCommand(cmdtext,myconnection);
myconnection.Open();
SqlDataReader recm=mycommand.ExecuteReader();

myconnection.Close();
return recm;
}
   请各位帮忙看看错误 谢谢了   

解决方案 »

  1.   

    myconnection.Close(); //删除这句
    SqlDataReader recm=mycommand.ExecuteReader(); 
    改为
    SqlDataReader recm=mycommand.ExecuteReader(CommandBehavior.CloseConnection); 

    while(dr2.Read())

    }
    之后把dr2.Close()
      

  2.   

    谢谢 楼上  还有个问题
      public SqlDataReader SelectDep2(int MYDepNumClass)
    {

    SqlConnection myconnection=new SqlConnection(connstr);
    string cmdtext="select * from DepB where DepNum=2 and DepNumClass=MYDepNumClass";
    SqlCommand mycommand=new SqlCommand(cmdtext,myconnection);
    myconnection.Open();
    SqlDataReader recm=mycommand.ExecuteReader(CommandBehavior.CloseConnection);
    mycommand.Parameters.Clear();


    return recm;

    }
        错误提示:列名MYDepNumClass 无效   , 这应该是SQL语句写错了把,请问怎么改下????
      

  3.   

    string cmdtext="select * from DepB where DepNum=2 and DepNumClass="+你的变量;
      

  4.   

    string cmdtext="select * from DepB where DepNum=2 and DepNumClass=" + MYDepNumClass.ToString();