2

私は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);
        }
    }
}

このコードを実行すると、 が表示され"net.ucanaccess.jdbc.UcanaccessSQLException: Column not found: 0"ます。私を助けてください!

4

2 に答える 2

5

JDBC ResultSet の数値インデックス値が 0 ではなく 1 で始まるため、このエラーが表示されます。または、Java チュートリアルの「行からの列値の取得」セクションで説明されているように、次のようになります

ResultSet インターフェースは、現在の行から列の値を取得するための getter メソッド (getBoolean や getLong など) を宣言します。列のインデックス番号、列のエイリアスまたは名前を使用して値を取得できます。通常、列インデックスの方が効率的です。列は 1 から番号が付けられます

(私のものを強調してください。)

于 2014-10-23T22:10:18.157 に答える
0

単に

ResultSet rs は 0 ではなくインデックス 1 で始まるため、rs.getInt(1) または rs.getObject(1) と記述する必要があります。

于 2014-12-08T22:52:57.737 に答える