1

こんにちは、私のコードの何が問題なのか教えていただけますか? ResultSet を「SELECT * FROM Table1」として設定すると、「SELECT キー、itemName、itemPrice、itemQuantity FROM Table1」の場合も完全に機能しますが、そのうちの 1 つまたは 2 つだけを使用しようとすると、エラー列が出力されます。見つかりません。

私のデータベースは MS Access に保存されています。それが私のメインです:

try (Connection cn = DBUtil.getConnection(DBType.MS_ACCESS);
    Statement st = cn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE, ResultSet.CONCUR_READ_ONLY);
    ResultSet rs = st.executeQuery("SELECT Table1.key FROM Table1");) {

    Table1.displayData(rs);

} catch (SQLException ex) {
    DBUtil.processException(ex);
}

それが Table1.java です。

public class Table1 {
    public static void displayData(ResultSet rs) throws SQLException {
        // to print out my database
        while (rs.next()) {
            StringBuffer buffer = new StringBuffer();

            buffer.append(rs.getString("key") + " ");
            buffer.append(rs.getString("itemName") + " ");

            double price = rs.getDouble("itemPrice");
            DecimalFormat pounds = new DecimalFormat("£#,##0.00");
            String formattedPrice = pounds.format(price);
            buffer.append(formattedPrice + " ");

            buffer.append(rs.getInt("itemQuantity") + " ");

            System.out.println(buffer.toString());
        }
    }
}
4

2 に答える 2

2

結果セットには、選択クエリで定義した列のみが含まれます。だからあなたがするなら

rs.getString("itemName")

次に、クエリでその列を選択する必要がありますが、そうではありません

st.executeQuery("SELECT Table1.key FROM Table1")
                                  ^-----------------column missing

行う

st.executeQuery("select key, itemName, itemPrice, itemQuantity from Table1")
于 2013-01-08T11:10:13.637 に答える
-1


buffer.append(rs.getString( "Table1.key")+ "");を使用する必要があります。

結果セットには、selectクエリで指定した名前のデータが含まれます。(key = Table1.key)

于 2013-01-08T11:13:20.410 に答える