我有一个之前运行良好的 java 程序现在给出了奇怪的错误。我不确定原因。流程是这样的,表名被传递给这个函数,列名是从其他函数中获取的。然后形成并运行sql以生成HTML表中的数据。这是整个java程序的一个功能。使用的 java 版本是 1.6(不能升级到 1.7,因为 1.6 是所有项目中使用的标准)。正如我在谷歌上检查的那样,如果您从结果集中多次获取同一列,则会出现此错误,但在我的情况下,我只获取一次该列。
public static String GetData(String TableName) throws IOException, SQLException
{
Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver" );
c = DriverManager.getConnection( "jdbc:odbc:dbname","username","password" );
Statement stmnt = c.createStatement();
try
{
String colname= GetColName(stmnt,TableName);
String colarray[] = colname.split(",");
htmlheader+="<table border=\"1\">";
htmlheader+="<caption><b>"+TableName +"</b></caption>";
htmlheader+="<tr>";
for (int n=0; n < colarray.length ; n++)
{
htmlheader+="<th>"+colarray[n]+"</th>";
}
htmlheader+="</tr>";
String sqlqry= "Select "+colname + " from "+TableName +";" ;
ResultSet result = stmnt.executeQuery(sqlqry);
while (result.next() )
{ htmlheader+="<tr>";
for (int n=0; n < colarray.length ; n++)
{
htmlheader+="<td>"+result.getString(colarray[n])+"</td>";**//Exception is coming in this line**
}
htmlheader+="</tr>";
}
htmlheader+="</table>";
}
catch( Exception e )
{
e.printStackTrace();
}
}
错误是
java.sql.SQLException: No data found
at sun.jdbc.odbc.JdbcOdbc.standardError(JdbcOdbc.java:7138)
at sun.jdbc.odbc.JdbcOdbc.SQLGetDataString(JdbcOdbc.java:3907)
at sun.jdbc.odbc.JdbcOdbcResultSet.getDataString(JdbcOdbcResultSet.java:5698)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:354)
at sun.jdbc.odbc.JdbcOdbcResultSet.getString(JdbcOdbcResultSet.java:411)
请建议。
这条线上出现异常
htmlheader+="<td>"+result.getString(colarray[n])+"</td>"