帮我看看这段代码:运行结果不正常.     中间有提示.void search() {    java.sql.Statement stmt;
    java.sql.ResultSet rst;
    try {
      in = Integer.parseInt(JOptionPane.showInputDialog(null, "请输入", "提示",
          JOptionPane.INFORMATION_MESSAGE));
    }
    catch (Exception ex) {    }    //  String str = "select * from tab where sid=" + in;
    this.conn();
    try {
      stmt = con.createStatement();
      rst = stmt.executeQuery("select * from sTable where sid=" + in);
      if (rst.next()) {
        txt4.setText("学号:" + rst.getInt(1));     //这里显示正常
        txa.setText("姓名:" + rst.getString(2));  //这里 信息显示一下就不见了
        txa2.setText("地址:" + rst.getString(3)); //这里信息也是显示一下就不见了;                        
        txa3.setText("性别[0代示男 1表示女]:" + rst.getInt(4));   //这个显示正常  
        JOptionPane.showMessageDialog(null, "成功查询", "成功",
                                      JOptionPane.INFORMATION_MESSAGE);   //这个一般是哪里错了?我找遍了都没找到错误~插入数据的时候是String的,而SQL数据表中的字段是varchar,应该由getString可以获得啊      }
      else {
        JOptionPane.showMessageDialog(this, "记录未找到", "提示",
                                      JOptionPane.INFORMATION_MESSAGE);
      }
      rst.close();
      stmt.close();
      con.close();    }
    catch (Exception ex) {
      JOptionPane.showMessageDialog(null, ex.getMessage(), "操作失败",
                                    JOptionPane.ERROR_MESSAGE);
    }
  }

解决方案 »

  1.   

    什么叫显示一下就不见了?
    如果确实显示过,那就不是这段操作数据库代码的问题.而是TextArea显示的问题
    你System.out出来看看是否从数据库中取出来了?
      

  2.   

    varchar类型在select查询语句中应该用单引号把String括在其中
      

  3.   

    这种情况最好使用PreparedStatement
      

  4.   

    同意楼上,建议用PreparedStatement试试