Dragon Warrior
Dragon Warrior

Reputation: 327

net.ucanaccess.jdbc.UcanaccessSQLException: Column not found: 0

I am new for UCanAccess

package checktpsystemdatabase;

import java.sql.*;

public class CheckTPSystemDatabase {

    public static void main(String[] args) throws SQLException {
        try {
            Connection con = DriverManager.getConnection("jdbc:ucanaccess://D:/Java/TransactionProcessingSystem/src/transactionprocessingsystem/Resources/TPSystem.accdb");

            Statement stmt = con.createStatement();
            ResultSet rs = stmt.executeQuery("SELECT * FROM Product");

            while (rs.next()) {
                System.out.println(rs.getInt(0) + "\t" + rs.getString(1) + "\t" + rs.getString(2));
            }
            rs.close();

        } catch (SQLException e) {
            System.out.println(e);
        }
    }
}

When I execute this code, It is showing "net.ucanaccess.jdbc.UcanaccessSQLException: Column not found: 0". Please help me!

Upvotes: 2

Views: 3244

Answers (2)

Mawardy
Mawardy

Reputation: 3828

simply

the ResultSet rs begins with index 1 not 0 so you should write rs.getInt(1) or rs.getObject(1)

Upvotes: 0

Gord Thompson
Gord Thompson

Reputation: 123779

You are seeing that error because the numeric index values for a JDBC ResultSet start with 1, not 0. Or, as they say in the "Retrieving Column Values from Rows" section of the Java Tutorial here:

The ResultSet interface declares getter methods (for example, getBoolean and getLong) for retrieving column values from the current row. You can retrieve values using either the index number of the column or the alias or name of the column. The column index is usually more efficient. Columns are numbered from 1

(Emphasis mine.)

Upvotes: 6

Related Questions