【问题标题】:looping error in javajava中的循环错误
【发布时间】:2015-08-17 04:51:32
【问题描述】:

当我运行此代码时,代码显示错误。请帮我解决这个问题。 这是我的 Java 代码:

public void kirim(){
    try{
    koneksi();
    String data ="select count(Number) from pbk";
    ResultSet rs1 = cn.executeQuery(data);
    while (rs1.next()){
        rs1.getString(1);
    }
    int banyakData=Integer.parseInt(rs1.getString(1));

    for (int i=0; i<=banyakData ;i++){
    String sqi = "select Number from pbk";
    ResultSet rs = cn.executeQuery(sqi);
    while(rs.next()){
        rs.getString(sqi);
    }          
    String sql="insert into outbox (DestinationNumber, TextDecoded, CreatorID) values ("
    + "'"+sqi +"',"
    + "'" + jTextArea1.getText()+ "',"
    + "'1'"
    + ")";
    cn.executeUpdate(sql);

    } JOptionPane.showMessageDialog(null, "Pesan terkirim");
    }catch (Exception e){
    JOptionPane.showMessageDialog(null, "Pesan gagal terkirim");
    System.out.println(e.getMessage());
    }
}

这是堆栈跟踪输出:

After end of result set

【问题讨论】:

  • 如果您能提供堆栈跟踪将不胜感激。
  • 我怀疑错误来自:rs.getString(sqi);,因为sqi 不是一个有效的论点...顺便说一句 - 你被否决了,因为你没有提供完整的堆栈跟踪,你不要告诉我们哪一行触发了错误(它也在堆栈跟踪中)。

标签: java mysql loops netbeans


【解决方案1】:

将您的代码更改为

ResultSet rs1 = cn.executeQuery(data);
int banyakData;
    while (rs1.next()){
       banyakData= rs1.getInt(1);
    }

并删除

  int banyakData=Integer.parseInt(rs1.getString(1));

通过您的方法,您已经遍历了结果集,并且在 while 循环完成后,您再次从结果集中获取错误。

如果您将结果放入任何变量 btw sqi 不是有效参数,那么在 while 循环中简单地执行 rs.getString(sqi);rs1.getString(1); 也没有任何意义。

【讨论】:

  • 我想你的意思是rs1.getInt(1)
  • 谢谢兄弟。但是在我改变之后我发现了新的错误。这是我的错误“未找到列'从 pbk 中选择数字'。”
  • 在我的java代码中没有显示错误,但是当我编译这个时,输出消息'column select Number from pbk not found''
猜你喜欢
  • 2011-10-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-03-23
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多