Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/86.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法将解析java.lang.String转换为java.lang.Boolean_Java_Sql_Database_Ms Access_Jtable - Fatal编程技术网

无法将解析java.lang.String转换为java.lang.Boolean

无法将解析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

我还是个编程新手。目前,我有一个检查员工出勤情况的程序。从数据库中检索员工id和姓名。员工的每日考勤保存在数据库的考勤表中,字段中只有ID、empID、DateAttentied、“present”、“加班”。现在,我想从考勤表中检索所有值。起初,我可以很好地检索这些值,但在添加了“a.dateAttended”和“a.Present”之后,我得到了这个异常。关于如何解决这个问题,有什么建议吗

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=(系统日期的月份)”;你的问题是什么?这个查询不起作用?谢谢。成功了。你能帮我回答最新的问题吗?