2014-10-02 125 views
3
<%@ page import="java.sql.*" %> 
<HTML> 
<BODY> 
<form method="post" > 

    Name:<input type="text" name="userName"><br> 
    Password:<input type="password" name="password"><br> 
    Email Id:<input type="text" name="email"><br> 
    Language: <select name="language"> 
     <option>Hindi</option> 
     <option>English</option> 
     <option>French</option> 
    </select> <br> 
    <input type="submit" value="Submit"> 

</form> 


<% 
String n = request.getParameter("userName"); 
String p = request.getParameter("password"); 
String e = request.getParameter("email"); 
String c = request.getParameter("language"); 


try { 

Class.forName("net.ucanaccess.jdbc.UcanaccessDriver"); 

Connection con=  DriverManager.getConnection("jdbc:ucanaccess://D:/eclipse/register.accdb","",""); 

PreparedStatement ps = con 
     .prepareStatement("insert into USERDETAILS values(?,?,?,?)"); 

ps.setString(1, n); 
ps.setString(2, p); 
ps.setString(3, e); 
ps.setString(4, c); 

int i= ps.executeUpdate(); 
if (i > 0) { 
    out.print("You are successfully registered..."); 
} 

else{ 
    out.println("failed"); 
} 


} catch (Exception e2) { 
System.out.println(e2); 
} 
%> 

</BODY> 
</html> 

每次我在Eclipse中运行该代码出现在控制台下面的消息,但我的数据库得到更新MS ACCESS完整性约束违规:NOT NULL检查约束;

net.ucanaccess.jdbc.UcanaccessSQLException: integrity constraint violation: NOT NULL check constraint; SYS_PK_10174 table: USERDETAILS column: NAME 

回答

1

提交表单之前要插入到数据库的页面加载。因此参数是null。您应该将action属性设置为另一个页面或更好的servlet,它们应该通过执行java和sql代码执行更新,然后重定向到视图页面。您无需将null值插入数据库,因为启用了约束条件以不允许NULL值。

<form action="yourpage.jsp" method="post" > 
相关问题