菜鸟举手提问:为什么我向数据库中写不进去东西!

yunrong 2002-05-18 03:47:05
我的注册网页能运行为什么再查数据库中没有提交信息?哪为大侠拉我一把,定当终身为谢!
注册表单代码如下<%@ page language="java" import="java.sql.*"%>
<%@ page contentType="text/html;charset=gb2312"%>
<html>
<head>
<title>user register</title>
</head>
<body>
<%
String userid=request.getParameter("userid");
String username=request.getParameter("username");
String password=request.getParameter("password");
String confirm_password=request.getParameter("confirm_password");
String question=request.getParameter("question");
String answer=request.getParameter("answer");
String name=request.getParameter("name");
String sex=request.getParameter("sex");
String literacy=request.getParameter("literacy");
String mail=request.getParameter("mail");
String aihao=request.getParameter("aihao");
%>
<%
if((userid.length()==0)||( username.length()==0)||(password.length()==0)||(confirm_password.length()==0))
out.println("用户帐号,登录名,密码,及密码校验不能为空!");
else if ((question.length()==0)||(answer.length()==0))
out.println("密码遗失提示问题及答案不能为空!");
else if (!password.equals(confirm_password))
out.println("密码与确认密码不一致!");
else if( mail.length()==0)
out.println("E-MAIL不能为空!");
else if(mail.indexOf('@')<=0)
out.println("EMAIL 地址有错误!");
else{
try{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:nn";
Connection con =DriverManager.getConnection(url);
PreparedStatement insert_stm=con.prepareStatement("insert into nn valuse(?,?,?,?,?,?,?,?,?,?,?)");
insert_stm.setString(1,userid);
insert_stm.setString(2,username);
insert_stm.setString(3,password);
insert_stm.setString(4,confirm_password);
insert_stm.setString(5,question);
insert_stm.setString(6,answer);
insert_stm.setString(7,name);
insert_stm.setString(8,sex);
insert_stm.setString(9,literacy);
insert_stm.setString(10,mail);
insert_stm.setString(11,aihao);
try{
insert_stm.executeQuery();
}catch(Exception e){}
con.close();
%>
<table border=1 cellspacing="0" cellpadding="0"
bordercolordark="#88a6dd" bordercolorlight="#88a6dd"
align="center">
<tr>
<td bgcolor="#88a6dd">现<br>在<br>登<br>录</td>
<td>
<table border=0 cellspacing="0" cellpadding="0">
<tr>
<td bgcolor="#88a6dd" align="center">你已成功注册</td>
</tr>
<tr>
<td align="center">
<form action="particular_action.jsp">
用户<input type="texe" name="userid" size=10><br>
密码<input type="password" name="password" size=10> <br>
<INPUT border =0 height=23 name="login" src="login.bmp"
type=image width=52>
</form ></td> </tr> </table>
</td></tr></table>
<%
}catch (Exception e){out.println(e);}
}
%>
</body>
</html>
**************************************************************************jsp与sql server2000的连接文件如下package opendb; //定义包opendb
import java.sql.*; //引入java.sql.*

//包中的类opendb
public class opendb {
String sDBDriver="sun.jdbc.odbc.JdbcOdbcDriver"; //数据库连接字符串:jdbc-odbc桥
String sConnStr="jdbc:odbc:nn";
Connection conn=null;
ResultSet rs=null;

//定义打开数据库连接的函数
public opendb() {
try
{
Class.forName(sDBDriver);
}
catch (java.lang.ClassNotFoundException e)
{
System.err.println("opendb():"+e.getMessage());
}
}

//定义执行sql语句的函数
public ResultSet executeQuery(String sql) {
rs=null;
try
{
conn=DriverManager.getConnection(sConnStr);
Statement stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
}
catch (SQLException ex)
{
System.err.println("aq.executeQuery:"+ex.getMessage());
}
return rs;//返回sql语句的执行结果
}
}


...全文
84 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
CHARGING 2002-05-20
  • 打赏
  • 举报
回复
估計是數据類型不匹配問題,好好檢查看看...
Andrawu 2002-05-20
  • 打赏
  • 举报
回复
没有错误信息吗?
进行步步跟踪。
rosmada 2002-05-19
  • 打赏
  • 举报
回复
是sql server的 数据库吗?如果是就看看数据类型,很敏感
hutaraki 2002-05-18
  • 打赏
  • 举报
回复
userid字段是不是numeric的,并且设置被标识??如果是那你插入一条记录它自动加1,不能人工插入。
yunrong 2002-05-18
  • 打赏
  • 举报
回复
还是不灵!
望详细赐教!
weidegong 2002-05-18
  • 打赏
  • 举报
回复
rs=stmt.executeQuery();
这个不会有错,但是不太适合,因为执行“insert into”不会返回任何记录集了
最好去掉rs=,换成stmt.executeUpdate()
Andrawu 2002-05-18
  • 打赏
  • 举报
回复
楼上的写代码,真可怕。
yunrong 2002-05-18
  • 打赏
  • 举报
回复
真聪明!云想衣裳花想容,春风拂槛露华浓。
saintKnight 2002-05-18
  • 打赏
  • 举报
回复
除了values的错误外,关键错误是
insert_stm.executeQuery();
应改为insert_stm.executeUpdate();

yunrong 2002-05-18
  • 打赏
  • 举报
回复
insert_stm.setString(1,userid);
insert_stm.setString(2,username);
insert_stm.setString(3,password);
insert_stm.setString(4,confirm_password);
insert_stm.setString(5,question);
insert_stm.setString(6,answer);
insert_stm.setString(7,name);
insert_stm.setString(8,sex);
insert_stm.setString(9,literacy);
insert_stm.setString(10,mail);
insert_stm.setString(11,aihao);
try{
insert_stm.executeQuery();
}catch(Exception e){}
con.close();
这些不是吗?
没有提示错误,运行时
直接到登录界面,表示注册成功
但数据库中没有值!
saintKnight 2002-05-18
  • 打赏
  • 举报
回复
insert_stm.executeQuery();
应改为insert_stm.executeUpdate();吧
weidegong 2002-05-18
  • 打赏
  • 举报
回复
云容?云想衣裳花相容
weidegong 2002-05-18
  • 打赏
  • 举报
回复
PreparedStatement insert_stm=con.prepareStatement("insert into nn valuse(?,?,?,?,?,?,?,?,?,?,?)");

注意:insert into nn values//not valuse

看看还有没有其他错误了;有没有错误提示信息?

81,091

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧