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)

这是什么原因?
...全文
142 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
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);
}
这样的方法来看异常要好多了!

81,122

社区成员

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

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