void Studentmanage::OnBUTTONshow() 
{
   // TODO: Add your control notification handler code here

m_list1.DeleteAllItems();
// if(m_rs.IsOpen())//这2句 屏蔽了才不出错
// m_rs.Close();    //这2句 屏蔽了才不出错
   int i=0;
  m_rs.MoveFirst();
  
  do
  {  
 
  m_rs.MoveNext();

  }  while(!m_rs.IsEOF());
  m_rs.Close();

}
我的问题是 ,我上面划线的2句 屏蔽了编译调试才不出错,但是如果我连续2次点击这个show按钮,也会出错 ~
大家帮我看下错在哪 ?该怎么改 ?
IsOpen()   IsEOF()  Close()这几个函数 我不是很清楚

解决方案 »

  1.   

    // if(m_rs.IsOpen())//这2句 屏蔽了才不出错 
    // m_rs.Close();    //这2句 屏蔽了才不出错 
    这是一句,就是关掉游标,关掉游标了,然后你再去调用,当然会出错
     m_rs.Close(); } 
    最后一句,同样是关掉游标,你点击两次,第一次没事,但把游标关了,第二次你再操作,游标无效,当然会出错把这两句去掉将关闭游标的操作写到别的地方去,比如你主函数退出前
      

  2.   

    // if(m_rs.IsOpen())//这2句 屏蔽了才不出错 
    // m_rs.Close();    //这2句 屏蔽了才不出错 
    就是关掉游标,关掉游标了,然后你再去操作,当然会出错 
    这个要放到最后去.也不是这样写,
    应为
    if(rs->State )
    {
    rs->Close();
    }
      

  3.   

    你后面要用到rs,为什么要close关闭它
      

  4.   

    // if(m_rs.IsOpen())//这2句 屏蔽了才不出错 
    // m_rs.Close();    //这2句 屏蔽了才不出错 
    这是一句,就是关掉游标,关掉游标了,然后你再去调用,当然会出错 
    m_rs.Close(); } 
    最后一句,同样是关掉游标,你点击两次,第一次没事,但把游标关了,第二次你再操作,游标无效,当然会出错 把这两句去掉 将关闭游标的操作写到别的地方去,比如你主函数退出前