JSP中数据库插入错误!

andrea2004 2004-08-26 11:24:41
写一个查询语句就没有错误
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String user = "";
String password = "";
Connection conn = DriverManager.getConnection("jdbc:odbc:data",user,password);
Statement stmt = conn.createStatement();
ResultSet resultset;

resultset = stmt.executeQuery("select * from user");
while(resultset.next()){
out.println(resultset.getString("Name"));
out.println(" ");
out.println(resultset.getString("Password"));
out.println("<br>");
}
而插入一个记录
String m_name = request.getParameter("name");
String m_password = request.getParameter("password");

Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String user = "";
String password = "";
Connection conn = DriverManager.getConnection("jdbc:odbc:data",user,password);
Statement stmt = conn.createStatement();
String sql = "Insert into user(Name,Password) values('"+m_name+"','"+m_password+")";
stmt.executeUpdate(sql);

报错如下:
javax.servlet.ServletException: [Microsoft][ODBC Microsoft Access Driver] ???????? ?????? ''null)' ??
org.apache.jasper.runtime.PageContextImpl.handlePageException(PageContextImpl.java:673)
org.apache.jsp.database.reg_005fmanage_jsp._jspService(reg_005fmanage_jsp.java:72)
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:133)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:311)
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:301)
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:248)
javax.servlet.http.HttpServlet.service(HttpServlet.java:856)

这是什么原因?
...全文
85 点赞 收藏 7
写回复
7 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
andrea2004 2004-08-26
JSP报错太隐晦了,不象asp那样直接,有没有调试的好方法?
回复
steveyue 2004-08-26
检查一下库里面是否有数据?
回复
一点晴 2004-08-26


sql语句写错了。'"+m_password+")";《---少了单引号。这样:'"+m_password+"')";

另检查数据表是否和字段对应
回复
aoplo 2004-08-26
把sql语句打出来,拷贝到数据库里执行看对不对!
回复
power17 2004-08-26
是你的数据库在插入时加了什么限制吧。
回复
yyqllxh2004 2004-08-26
你没有对中文转码吧??
m_name=new String(m_name.getBytes("ISO8859-1"),"GBK");
回复
drugon 2004-08-26
从你的错误来看,好象是你的SQL语句写的有问题。当SQL中有参数传入的时候,最好用PreparedStatement这个接口,用它可以直接的将各种类型的参数传入,而不需要在各个参数之间加上什么单引号的。
加上
try
{
//你的代码;
}
catch(SQLException e)
{
System.out.println("Exception ->"+e);
}
这样的方法来看异常要好多了!
回复
相关推荐
发帖
Web 开发
创建于2007-09-28

8.0w+

社区成员

Java Web 开发
申请成为版主
帖子事件
创建了帖子
2004-08-26 11:24
社区公告
暂无公告