try  
                       {  
                                     
                                   connect1  =  DriverManager.getConnection("jdbc:odbc:words");  
                                   sql1  =  connect1.createStatement();  
                                   long  i=(int)Math.random()*8845;  
                         
                                   rset1  =  sql1.executeQuery("SELECT  *  FROM  words  where  number=i");  
                                   while(rset1.next())  
                                   tfAnswer.setText(rset1.getString(3));  
                       }catch  (SQLException  e)  
                       {  
                                   tfAnswer.setText("SQLException  when  open!\n");  
                       }  
 
怎么不能正确执行呀  
出异常了rset1  =  sql1.executeQuery("SELECT  *  FROM  words  where  number=i");  
就这条语句不知道弄了number=i就不对呢 
这样rset1  =  sql1.executeQuery(  "SELECT  *  FROM  words  where  number=  "+i+  "  ");还是不行呀;没有结果出来  

解决方案 »

  1.   

    rset1 = sql1.executeQuery(  "SELECT  *  FROM  words  where  number="+i);
    试试上面这个,去掉了多余的空格
      

  2.   

    还有呀。我想问一下呀怎么把查出的东西赋值给一个字符串。string s=rset1.getstring(2);对吗?
      

  3.   

    long  i=(int)Math.random()*8845;这句话有问题,你是想生成一个在1~8845之间的随机整数吧?使用java.util.Random类:
    long i=(new Random()).nextInt(8845);
    就好了
      

  4.   

    rset1 = sql1.executeQuery(  "SELECT  *  FROM  words  where  number="+i);表words里有number字段吗?
    还是想用 rownum的?
      

  5.   

    huhbc() 说的对啊
    long  i=(int)Math.random()*8845;这句话有问题,
    楼主弟弟,你这样做范围是不对的你是想生成一个在1~8845之间的随机整数吧
    使用java.util.Random类:
    long i=(new Random()).nextInt(8845);你试试看!!!
      

  6.   

    long  i=(int)Math.random()*8845;
    如果随即数是2  那么不就是8845*2=多少??你知道的啊
    你一共才有 8000各单词
      

  7.   

    long  i=(int)Math.random不好意思看错了,你上面这么取怎么取读是0 Math.random
    返回 n,其中 0 <= n < 1。 
    你int 那么一定是 0