Code add dạng date của javaSwing

try {
    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
    Connection con = DriverManager.getConnection(url, "sa", "");
    PreparedStatement ps = con.prepareStatement("insert into nhanvien values(?,?,?,?,?,?)");

    ps.setString(1, txtmanv.getText());
    ps.setString(2, txthoten.getText());
    ps.setString(3, txtpassword.getText());
    ps.setDate(4, (Date) txtngaysinh.getDate());
    ps.setString(5, txtemail.getText());
    ps.setString(6, txtsdt.getText());

    int kq = ps.executeUpdate();
    if (kq == 1) {
        JOptionPane.showMessageDialog(this, "Succes");
    } else {
        JOptionPane.showMessageDialog(this, "Error");
    }
    ps.close();
    con.close();
    loaddata();
} catch (Exception e) {
    e.printStackTrace();
}

đây là đoạn code thêm trường trình của em nhưng s lúc chạy thêm ds thì nó lại báo lỗi " Date cannot be cast to java.sql.Date " như thế này v ạ.mọi người giúp em với

Bởi vì cậu đang cố gắng cast java.util.Date object (tớ đoán mò thôi, không ai ngoài cậu biết txtngaysinh.getDate() là kiểu object gì) thành java.sql.Date object (2 object này không cùng kiểu, và không liên quan gì tới nhau). Đừng cast như vậy chỉ để ỉm lỗi compile time, mà không tìm hiểu lý do tại sao cậu bị compiler complain lần tới nhé!
Cậu có thể làm thế này nếu txtngaysinh.getDate()java.util.Date:

java.sql.Date sqlDate = new java.sql.Date(txtngaysinh.getDate());

Hope it helps!

3 Likes
83% thành viên diễn đàn không hỏi bài tập, còn bạn thì sao?