无法将解析java.lang.String转换为java.lang.Boolean
我还是个编程新手。目前,我有一个检查员工出勤情况的程序。从数据库中检索员工id和姓名。员工的每日考勤保存在数据库的考勤表中,字段中只有ID、empID、DateAttentied、“present”、“加班”。现在,我想从考勤表中检索所有值。起初,我可以很好地检索这些值,但在添加了“a.dateAttended”和“a.Present”之后,我得到了这个异常。关于如何解决这个问题,有什么建议吗无法将解析java.lang.String转换为java.lang.Boolean,java,sql,database,ms-access,jtable,Java,Sql,Database,Ms Access,Jtable,我还是个编程新手。目前,我有一个检查员工出勤情况的程序。从数据库中检索员工id和姓名。员工的每日考勤保存在数据库的考勤表中,字段中只有ID、empID、DateAttentied、“present”、“加班”。现在,我想从考勤表中检索所有值。起初,我可以很好地检索这些值,但在添加了“a.dateAttended”和“a.Present”之后,我得到了这个异常。关于如何解决这个问题,有什么建议吗 private void attendanceView(){ try{ Str
private void attendanceView(){
try{
String query ="SELECT e.ID,e.firstName,e.lastName,e.position,a.dateAttended,a.Present FROM employees e INNER JOIN attendance a ON e.ID=a.empID";
Object[][] result = connectToDB(query);
attendanceTable.setModel(new javax.swing.table.DefaultTableModel(
result, new String [] {"Employee ID","First Name","Last Name", "Position", "Date", "Present"}
)
{
Class[] types = new Class [] {
java.lang.Integer.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.String.class, java.lang.Boolean.class
};
boolean[] canEdit = new boolean [] {
false, false, false, false, false, true
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
public boolean isCellEditable(int rowIndex, int columnIndex) {
return canEdit [columnIndex];
}
});
}catch (ClassNotFoundException ex) {
Logger.getLogger(MainFrame.class.getName()).log(Level.SEVERE, null, ex);
}
}
由此,在评论中,
SELECT e.ID,e.firstName,e.lastName,e.position,a.dateAttended
FROM employees e INNER JOIN Attendance a ON a.empID =e.ID
WHERE a.dateAttended = (month of the system date)
通过谷歌搜索ms access日期函数,我找到了now(),返回当前日期和时间,以及month(),返回月份号。这意味着您可以这样做:
SELECT e.ID,e.firstName,e.lastName,e.position,a.dateAttended
FROM employees e INNER JOIN Attendance a ON a.empID =e.ID
WHERE month(a.dateAttended) = month(now())
然而,有更好的方法可以做到这一点。在where子句中使用这样的函数会降低生产速度。另外,这只适用于本月。我建议您使用java代码生成两个日期变量。第一个是要搜索的月份的第一天,另一个是下个月的第一天。那么你的where子句就是这个
where a.dateAttended >= the first variable
and a.datAttended < the other variable
其中a.dateAttended>=第一个变量
和a.datAttended<另一个变量
如果access支持查询参数,那么使用查询参数将进一步改善它。我不使用它,所以我不知道。停止在同一主题上发布多个问题。你之前问过(然后删除了)同样的问题。转载不会得到更好的帮助,人们也不知道其他帖子中已经提出了什么建议,可能会浪费时间重复这些建议。你的问题仍然没有说明问题是什么。问题是SQL、表的构建还是其他方面的问题?只需运行一个查询来获取所有information@camickr之前没有人提出建议,所以我重新发布了。很抱歉给您带来不便。@652如何正确添加where子句?“选择e.ID、e.firstName、e.lastName、e.position、a.DateAttentied FROM employees e Internal JOIN Attention a ON a.empID=e.ID,其中a.DateAttentied=(系统日期的月份)”;你的问题是什么?这个查询不起作用?谢谢。成功了。你能帮我回答最新的问题吗?