Java +“““+jTextField3.getText()+”,车辆类型=”“+jTextField4.getText()+””; ResultSet rs=db.execSQL(查询); 如果(rs.equals(null)){ PartNotFound nf=新PartNotFound(); nf.setVisible(真); } 否则{ ResultSetMetaData rsmd=rs.getMetaData(); int numberOfColumns=rsmd.getColumnCount(); int RowCount=0; 对于(int i=1;i
删除以下行,它没有任何作用。 它试图从ResultSet中删除列值,但您尚未滚动到第一行Java +“““+jTextField3.getText()+”,车辆类型=”“+jTextField4.getText()+””; ResultSet rs=db.execSQL(查询); 如果(rs.equals(null)){ PartNotFound nf=新PartNotFound(); nf.setVisible(真); } 否则{ ResultSetMetaData rsmd=rs.getMetaData(); int numberOfColumns=rsmd.getColumnCount(); int RowCount=0; 对于(int i=1;i,java,jdbc,Java,Jdbc,删除以下行,它没有任何作用。 它试图从ResultSet中删除列值,但您尚未滚动到第一行 拆下下面的线路,它没有任何作用。 它试图从ResultSet中删除列值,但您尚未滚动到第一行 如果rs为null,则rs.equals(null)将抛出NullPointerException而不是返回false。然而,如果这不是您得到的异常,那么问题就出在其他地方。如果rs为null,那么rs.equals(null)将抛出NullPointerException而不是返回false。然而,如果这不是您遇
拆下下面的线路,它没有任何作用。 它试图从ResultSet中删除列值,但您尚未滚动到第一行
如果
rs
为null,则rs.equals(null)
将抛出NullPointerException
而不是返回false
。然而,如果这不是您得到的异常,那么问题就出在其他地方。如果rs
为null,那么rs.equals(null)
将抛出NullPointerException
而不是返回false
。然而,如果这不是您遇到的异常,那么问题就出在其他地方。在访问结果集之前,您始终需要调用结果集的next()。如果不是,指针将指向第一行之前的行。您可以在代码中使用while循环来执行此操作,但在某些地方不使用while循环,这会生成错误:
for (int i = 1; i < numberOfColumns; i++) {
rs.getString(i);
result += i + "/n";
}
for(int i=1;i
哦,正如另一张海报所提到的,您没有将结果分配给变量,因此rs.getString(i)调用没有效果。但这可能是错误的根源。在访问结果集之前,始终需要调用结果集上的next()。如果不是,指针将指向第一行之前的行。您可以在代码中使用while循环来执行此操作,但在某些地方不使用while循环,这会生成错误:
for (int i = 1; i < numberOfColumns; i++) {
rs.getString(i);
result += i + "/n";
}
for(int i=1;i
哦,正如另一张海报所提到的,您没有将结果分配给变量,因此rs.getString(i)调用没有效果。但这可能是你的错误根源。我看到了一些事情
- 第一个rs从不为空。如果没有行,rs.next()将返回false
- 结果集开始于第一行之前的位置。您需要调用rs.next()来移动到第一行,如上所述,如果没有行,那么第一行将返回false
while (rs.next())
{
rs.getXXX();
}
- 完成后,ResultSet应始终关闭()d,否则可能会泄漏数据库资源。这也适用于Connection、Statement、PreparedStatement,所以请检查其他类中的DB代码
- 在列元数据上循环时,需要执行
对于(inti=1;i我看到了一些东西
- 第一个rs从不为空。如果没有行,则rs.next()将返回false
- ResultSet在第一行之前开始位置。您需要调用rs.next()移动到第一行,如上所述,如果没有行,则返回false
while (rs.next()) { rs.getXXX(); }
- 结果
if (!rs.next()) { ...code here to set not found... } else { ...code here to retrieve the columns... }
for (int i = 1; i <= numberOfColumns; i++) { result += rs.getString(i) + "\n"; }
StringBuilder sb = new StringBuilder(256); for (int i = 1; i <= numberOfColumns; i++) { sb.append(rs.getString(i)).append("\n"); } result = sb.toString();
StringBuilder sb = new StringBuilder(256); for (int i = 1; i <= numberOfColumns; i++) { sb.append(rsmd.getColumnName(i)).append("\n"); } result = sb.toString();
do { RowCount++; // recommend using rowCount. } while (rs.next());
DB db = new DB(); try { db.connect(); String query = "select count(1) from Stock where Part_name =" + ...; ResultSet rs = db.execSQL(query); if (!rs.next()) { PartNotFound nf = ...; nf.setVisible(true); } else { Receptionist_FranchiseePartFound part = new Receptionist_FranchiseePartFound(); part.setVisible(true); rowCount = rs.getInt(1); part.getTable().addRowSelectionInterval(0, rowCount); } } catch (Exception e) { ...error handling with stack trace/JOptionPane... }