com.microsoft.sqlserver.jdbc.SQLServerException: 不能将值 NULL 插入列 'a_nam 5
关键代码如下:(try语句省略catch)<body><%Connectionconn=null;ResultSetrs=null;Statementstmt=null;...
关键代码如下:(try语句省略catch)
<body>
<%
Connection conn=null;
ResultSet rs=null;
Statement stmt=null;
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DataBaseName=reg","sa","sa");
String a_name=request.getParameter("a_name");
String a_pass=request.getParameter("a_pass");
String a_header=request.getParameter("reg_userPic");
String a_phone=request.getParameter("a_phone");
String a_email=request.getParameter("a_email");
String strSql="insert into Admin values(?,?,?,?,?)";
PreparedStatement pstmt=conn.prepareStatement(strSql);
pstmt.setString(1,a_name);
pstmt.setString(2,a_pass);
pstmt.setString(3,a_header);
pstmt.setString(4,a_phone);
pstmt.setString(5,a_email);
int intTemp=pstmt.executeUpdate();
if(intTemp!=0)
{
out.println("<font size='10' color='red'>"+"恭喜您!注册成功!"+"</font>");
}
else
{
out.println("<font size='10' color='red'>"+"对不起!注册失败!"+"</font>");
}
}
try{
String strSql2="select * from Admin";
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(strSql2);
}
%>
<%
String str=(String)request.getParameter("page");
if(str==null)
{
str="0";
}
int pagesize=2;
rs.last();
int recordCount=rs.getRow();
int maxPage=0;
maxPage=(recordCount%pagesize==0)?(recordCount/pagesize):(recordCount/pagesize+1);
int currentPage=Integer.parseInt(str);
if(currentPage<1)
{
currentPage=1;
}
else
{
if(currentPage>maxPage)
{
currentPage = maxPage;
}
}
rs.absolute((currentPage-1)*pagesize+1);
for(int i = 1;i<pagesize;i++)
{
%>
<tr bacolor="lightblue">
<td><%=rs.getString("a_name") %></td>
<td><%=rs.getString("a_pass") %></td>
<td><img src=<%=rs.getString("a_header") %>></td>
<td><%=rs.getString("a_phone") %></td>
<td><%=rs.getString("a_email") %></td>
</tr>
<%
try
{
if(!rs.next()){break;};
}
catch(Exception e)
{
out.println(e.toString());
}
}
%>
</table>
<p align="center"><font size="2">跳转到:<input type="text" name="page" size="3">当前页数:[<%=currentPage %>/<%=maxPage %>]
<%if(currentPage>1)
{%>
<a href="admin_reg_ok.jsp?page=1">第一页</a>
<a href="admin_reg_ok.jsp?page=<%=currentPage-1%>">上一页</a>
<%
}
if(currentPage<maxPage){
%>
<a href="admin_reg_ok.jsp?page=<%=currentPage+1%>">下一页</a>
<a href="admin_reg_ok.jsp?page=<%=maxPage%>">最后一页</a>
<%
} %>
</font>
</p>
</body>
系统报错如下:
com.microsoft.sqlserver.jdbc.SQLServerException: 不能将值 NULL 插入列 'a_name',表 'reg.dbo.Admin';列不允许有空值。INSERT 失败。 展开
<body>
<%
Connection conn=null;
ResultSet rs=null;
Statement stmt=null;
try
{
Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
Connection conn=DriverManager.getConnection("jdbc:sqlserver://localhost:1433;DataBaseName=reg","sa","sa");
String a_name=request.getParameter("a_name");
String a_pass=request.getParameter("a_pass");
String a_header=request.getParameter("reg_userPic");
String a_phone=request.getParameter("a_phone");
String a_email=request.getParameter("a_email");
String strSql="insert into Admin values(?,?,?,?,?)";
PreparedStatement pstmt=conn.prepareStatement(strSql);
pstmt.setString(1,a_name);
pstmt.setString(2,a_pass);
pstmt.setString(3,a_header);
pstmt.setString(4,a_phone);
pstmt.setString(5,a_email);
int intTemp=pstmt.executeUpdate();
if(intTemp!=0)
{
out.println("<font size='10' color='red'>"+"恭喜您!注册成功!"+"</font>");
}
else
{
out.println("<font size='10' color='red'>"+"对不起!注册失败!"+"</font>");
}
}
try{
String strSql2="select * from Admin";
stmt=conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY);
rs=stmt.executeQuery(strSql2);
}
%>
<%
String str=(String)request.getParameter("page");
if(str==null)
{
str="0";
}
int pagesize=2;
rs.last();
int recordCount=rs.getRow();
int maxPage=0;
maxPage=(recordCount%pagesize==0)?(recordCount/pagesize):(recordCount/pagesize+1);
int currentPage=Integer.parseInt(str);
if(currentPage<1)
{
currentPage=1;
}
else
{
if(currentPage>maxPage)
{
currentPage = maxPage;
}
}
rs.absolute((currentPage-1)*pagesize+1);
for(int i = 1;i<pagesize;i++)
{
%>
<tr bacolor="lightblue">
<td><%=rs.getString("a_name") %></td>
<td><%=rs.getString("a_pass") %></td>
<td><img src=<%=rs.getString("a_header") %>></td>
<td><%=rs.getString("a_phone") %></td>
<td><%=rs.getString("a_email") %></td>
</tr>
<%
try
{
if(!rs.next()){break;};
}
catch(Exception e)
{
out.println(e.toString());
}
}
%>
</table>
<p align="center"><font size="2">跳转到:<input type="text" name="page" size="3">当前页数:[<%=currentPage %>/<%=maxPage %>]
<%if(currentPage>1)
{%>
<a href="admin_reg_ok.jsp?page=1">第一页</a>
<a href="admin_reg_ok.jsp?page=<%=currentPage-1%>">上一页</a>
<%
}
if(currentPage<maxPage){
%>
<a href="admin_reg_ok.jsp?page=<%=currentPage+1%>">下一页</a>
<a href="admin_reg_ok.jsp?page=<%=maxPage%>">最后一页</a>
<%
} %>
</font>
</p>
</body>
系统报错如下:
com.microsoft.sqlserver.jdbc.SQLServerException: 不能将值 NULL 插入列 'a_name',表 'reg.dbo.Admin';列不允许有空值。INSERT 失败。 展开
3个回答
展开全部
列不允许为空 改数据库
该列 使其允许为空
该列 使其允许为空
更多追问追答
追问
老大,恭喜你,回答错误!它不是数据库的问题,数据库a_name是主键,不能设置为空值。
追答
有用name 做主键的 第一次听说 看来是我孤陋寡闻了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
那个,这个问题你最后是咋解决的,我也是按照书上的代码向数据库(老师给的商城数据)中添加一行数据,也和你一样初夏安乐上述错误。而且在数据库中修改主键也不行。
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询