gpt4 book ai didi

java - GetMetaData()->游标的状态不正确

转载 作者:行者123 更新时间:2023-11-29 04:32:35 26 4
gpt4 key购买 nike

我一直在尝试将 Ucanacces 与 getMetaData() 一起使用,但我遇到了一些问题,当我尝试显示信息时出现此错误:

Error de SQLException:net.ucanaccess.jdbc.UcanaccessSQLException: UCAExc:::4.0.1 estado del cursor incorrecto: cursor indicado no está posicionado en una fila para sentencia UPDATE, DELETE, SET, o GET: ; Posición actual del resultado de la consulta es antes del primer registro

在英语中是指

UCAExc:::4.0.1 the state of the cursor is not correct: cursor indicated is not positioned in a row UPDATE, DELETE, SET, or GET statement.:; Current position of the result of the query is before the first registration

(抱歉翻译了我自己)。

所以我认为可能错误是在我尝试打印数据时尝试访问数据:

        Connection connection=DriverManager.getConnection(url);
Statement statement=connection.createStatement();
String sql= "SELECT * FROM BARCO";
ResultSet result=statement.executeQuery(sql);
ResultSetMetaData rmeta=result.getMetaData();
int numColums=rmeta.getColumnCount();
for(int i=1;i<=numColums;++i){
if (i>numColums){
System.out.print(result.getString(rmeta.getColumnName(i))+"|");;
}else {
System.out.println(result.getString(rmeta.getColumnName(i)));
}
}
while(result.next()){
for(int i=1;i<=numColums;++i){
if(i<numColums){
System.out.print(result.getString(rmeta.getColumnName(i))+"|");
}else{
System.out.println(result.getString(rmeta.getColumnName(i)));
}
}

最佳答案

您的问题出在这部分代码中:

for(int i=1;i<=numColums;++i){
if (i>numColums){
System.out.print(result.getString(rmeta.getColumnName(i))+"|");;
}else {
System.out.println(result.getString(rmeta.getColumnName(i)));
}
}

当光标未移动到实际行时,您正试图从 ResultSet 中读取,其初始位置为 -1。您可以通过调用 next() 方法来遍历 ResultSet(就像您在第二个 for 循环 中所做的那样)。 next() 方法将光标向前移动一行(如果有行)并返回 true。当它到达 ResultSet 的末尾时,它返回 false。您可以使用其他方法(即 relative(int rows) 等)定位光标。有关详细信息,请参阅 documentation .

如果要在第一行打印列名,则将上面的代码替换为:

for(int i=1;i<=numColums;i++){
System.out.print(rmeta.getColumnName(i)+"\t");
}
System.out.println();

关于java - GetMetaData()->游标的状态不正确,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43230126/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com