【发布时间】:2014-01-29 22:48:46
【问题描述】:
这是我的代码我收到以下错误“java.sql.sqlException:no such column:employID”并且我已经重新检查了我的 db 表列名称是否正确employID 没有错,但仍然出现相同的错误请帮助我正在尝试使用 netbeans IDE 和 sqlite 数据库将基于第一列的表数据加载到文本框中。
private void tableEmployeeMouseClicked(java.awt.event.MouseEvent evt) {
try{
int row=tableEmployee.getSelectedRow();
String tableClick=(tableEmployee.getModel().getValueAt(row, 0).toString());
String sql="SELECT * FROM employeeInfo WHERE employID=' "+tableClick+" ' ";
pst=conn.prepareStatement(sql);
rs=pst.executeQuery();
if(rs.next()){
String add1=rs.getString("employID");
empid.setText(add1);
String bdd=rs.getString("name");
name.setText(bdd);
String cdd=rs.getString("surname");
surname.setText(cdd);
String ddd=rs.getString("age");
age.setText(ddd);
}
}
catch(Exception e){
JOptionPane.showMessageDialog(null,e);
}
n.b.我数据库中的employID 列已设置
到INTEGER 我的代码中的那个或我的查询是否与错误类型有任何联系..
谢谢。
编辑:DDL 语句
CREATE TABLE "employeeInfo" (
"employID " INTEGER PRIMARY KEY NOT NULL ,
"name" CHAR, "surname" CHAR,
"age" INTEGER, "username" VARCHAR, "password" VARCHAR)
【问题讨论】:
-
首先要解决的问题:不要那样构建 SQL。请改用参数化 SQL。但我强烈怀疑你真的没有一个确切地名为的专栏......它是否可能会有所不同? (我不期望它区分大小写,但奇怪的事情发生了。)
-
能贴一下数据库的结构吗? (
SHOW CREATE TABLE employeeInfo) -
CREATE TABLE "employeeInfo" ("employID" INTEGER PRIMARY KEY NOT NULL , "name" CHAR, "surname" CHAR, "age" INTEGER, "username" VARCHAR, "password" VARCHAR)跨度>
-
@JonSkeet 请你给我一个如何参数化它的例子,请检查我的数据库结构,如上所示
-
在命令窗口中启动
sqlite3并执行.schema employeeInfo。