Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

エクセルのデータベース

エクセルファイルをデータベースにした検索プログラム
を作成しましたが、コンパイル後実行すると「java.sqlException column not found」とエラーメッセージが出てしまいます。
どこが悪いのか、間違っているのかご指摘・ご指導よろしくお願いいたします。 


import javax.swing.*;
import java.awt.*;
import java.awt.event.*;
import java.sql.*;

public class L0517 extends JFrame {

    Connection myCon = null;
    JButton btnDraw = new JButton("接続");
    JTextArea tarScreen = new JTextArea();
    JTextField txtValue = new JTextField();

    public static void main(String args []) {
        L0517 myAppli = new L0517("Search records");
        myAppli.setSize(400,300);
        myAppli.setVisible(true);
    }

    public L0517(String title) {
        super(title);

        tarScreen.setLineWrap(true);

        btnDraw.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent ae) {
        try {
            Class.forName ("sun.jdbc.odbc.JdbcOdbcDriver");
            myCon = DriverManager.getConnection("jdbc:odbc:SAMPLE");

            Statement mySt = myCon.createStatement();
            ResultSet myRs = mySt.executeQuery("SELECT * FROM test WHERE 住所 <= " + txtValue.getText());

        while (myRs.next()){
            long id = myRs.getLong("ID");
            String name = myRs.getString("NAME");
            int age = myRs.getInt("AGE");
            String tel = myRs.getString("TEL");
            tarScreen.append(id + "/" + name + "/"+ age + "/"+ tel + "\n");
            }

        }catch (Exception ex) {
            tarScreen.setText("エラー発生:"+ex);
        }
        }
        });
        getContentPane().add(txtValue,BorderLayout.NORTH);
        getContentPane().add(btnDraw,BorderLayout.SOUTH);
        getContentPane().add(tarScreen,BorderLayout.CENTER);
        }
}

8

回答

3567

閲覧

8件の回答

評価

0

原因:カラムがない
カラム名の指定がまちがえてるんじゃないんですか?

評価

0

ご回答ありがとうございます。

カラム名を確かめてみましたが合っておりました。
他に何かありましたらよろしくお願いいたします。

評価

0

>合っておりました。
なにをどう確認したんでしょう。
見当違いのものを確認しているかもしれません。

評価

0

言い方がわるかったかな。
Javaで認識できる指定されたカラム名がないってことですよ。

評価

0

ご回答ありがとうございます。

補足説明させていただきます。

質問内容に記載の「ResultSet myRs =mySt.executeQuery("SELECT * FROM test WHERE 住所<= "txtValue.getText());」の「住所」の部分と、エクセルファイル「SAMPLE.xlsファイル」のC1セルの「住所」を一致させているつもりです。

何かわかりましたらよろしくお願いいたします。

評価

0

一致させているつもり?
開発をする以上「つもり」はタブーです。
性格に一致されているのか メタデータ取得して確認しましょう。

評価

0

性格 > 正確
誤字った

評価

0

-----------------------------------------------
java.sqlException column not found」とエラー
メッセージが出てしまいます。
-----------------------------------------------

住所 <= 'xx'

じゃなくて?
住所は、Integer とか、Real の値なの??


質問から6ヶ月以上経過しているので、回答を書き込むことはできません。