public void openConn()
{
   ....
   PreparedStatement prepare=theConnection.prepareStatement(sql);//here the reason!
  ...
  }prepare=theConnection.prepareStatement(sql);//不用再次声明为局域变量

解决方案 »

  1.   

    变量的生命周期的问题,在 openConn()中如果对 prepare重新声明了,则离开这个方法后,openConn()中的prepare 就失效了,这个时候,你在selectdb()中用的prepare 是在类开头定义的,他没有初始化,应该抛出一个 NullPointException 
      

  2.   

    呵呵,应该是 NullPointerException 记不住catch语句写成 { theIndex.setText(e);}
    可以看的清楚一些