Mình có đoạn code như sau:
public void updateAccount(String username, String name, String address, String aboutMe,
String id) {
String sql = "update Account set username = ?, \n"
+ " [Full_Name] = ?,\n"
+ " [Address] = ?,\n"
+ " [about_me] = ?\n"
+ " where id = ?";
try {
PreparedStatement ps = connection.prepareStatement(sql);
ps.setString(1, username);
ps.setString(2, name);
ps.setString(3, address);
ps.setString(4, aboutMe);
ps.setString(5, id);
ps.executeUpdate();
} catch (Exception ex) {
Logger.getLogger(AccountDao.class.getName()).log(Level.SEVERE, null, ex);
}
}
Nhưng khi thay đổi một số thông tin trên trang web nhưng nó không update được và có lỗi như thế này:
Severe: com.microsoft.sqlserver.jdbc.SQLServerException: Cannot insert the value NULL
into column 'username', table 'FERA_ONL_LEARNING.dbo.Account'; column does not allow nulls. UPDATE fails. at
com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDatabaseError(SQLServerException.java:217) at
com.microsoft.sqlserver.jdbc.SQLServerStatement.getNextResult(SQLServerStatement.java:1655) at
com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.doExecutePreparedStatement(SQLServerPreparedStatement.java:440) at
com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement$PrepStmtExecCmd.doExecute(SQLServerPreparedStatement.java:385) at
com.microsoft.sqlserver.jdbc.TDSCommand.execute(IOBuffer.java:7505) at
com.microsoft.sqlserver.jdbc.SQLServerConnection.executeCommand(SQLServerConnectio
n.java:2445) at
com.microsoft.sqlserver.jdbc.SQLServerStatement.executeCommand(SQLServerStatement.j
ava:191) at com.microsoft.sqlserver.jdbc.SQLServerStatement.executeStatement(SQLServerStatement.java:166) at
com.microsoft.sqlserver.jdbc.SQLServerPreparedStatement.executeUpdate(SQLServerPrep
aredStatement.java:328) at dao.AccountDao.updateAccount(AccountDao.java:142) at
controller.UserProfileController.doPost(UserProfileController.java:91)
Mình không hiểu tại sao giá trị là NULL và làm thế nào để có thể khắc phục nó ạ?