总是insert into错误

一口三个汉堡 2010-10-17 01:09:51
这个是servlet的代码,处理表单传来的数据,并保存到数据库中

import javax.servlet.*;
import java.io.*;
import javax.servlet.http.*;
import data.conndb;
public class noteServlet extends HttpServlet{
public void doPost(HttpServletRequest request,HttpServletResponse
response)
{
String name=request.getParameter("name");
String subject=request.getParameter("subject");
String memo=request.getParameter("memo");
String sql;
sql="insert into note values("+"'"+name+"',"+"'"+subject+"',"+"'"+memo+"')";
conndb db=new conndb();
db.executeUpdate(sql);
}
public void doGet(HttpServletRequest request,HttpServletResponse response)
{
doPost(request,response);
}

}


这个是html的代码,一个留言框

<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=GBK">
<title>留言板</title>
</head>
<body>
<div align="center">
<form action="noteServlet" method="post">
您的姓名:<input type="text" name="name" size="20"><br>
主题:<input type="text" name="subject" size="20"><br>
内容:<br>
<textarea name="memo" cols="15" rows="9">
</textarea><br>
<input type="submit" value="提交">  
<input type="reset" value="重写">
</form>
</div>
</body>
</html>

这个是数据库处理的相关类

package data;
import java.sql.*;

public class conndb {
String DBDriver="sun.jdbc.odbc.JdbcOdbcDriver";
String ConStr="jdbc:odbc:wjh";
Connection connect =null;
ResultSet rs=null;
public conndb(){
try
{
Class.forName(DBDriver);
}catch(java.lang.ClassNotFoundException e)
{
System.err.println(e.getMessage());
}
}
public ResultSet executeQuety(String sql)
{
try {
connect = DriverManager.getConnection(ConStr);
Statement stmt=connect.createStatement();
rs=stmt.executeQuery(sql);
} catch (SQLException ex) {

System.err.println(ex.getMessage());
}
return rs;

}
public int executeUpdate(String sql)
{
int i=0;
try
{
connect=DriverManager.getConnection(ConStr);
Statement stmt=connect.createStatement();
i=stmt.executeUpdate(sql);
}
catch(SQLException ex)
{
System.err.println(ex.getMessage());
}
return i;
}

}


运行的时候总是出现insert into 语法错误,我知道是sql语句的错误,但是调试的时候,看语句也没有错误啊。
...全文
62 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
一口三个汉堡 2010-10-17
  • 打赏
  • 举报
回复
换了一个插入的表就可以了,我不知道为什么啊
zbo 2010-10-17
  • 打赏
  • 举报
回复
把打印出来的语句放到数据库里执行。
不知道是不是标点的问题。
一口三个汉堡 2010-10-17
  • 打赏
  • 举报
回复
[Quote=引用 5 楼 abcjun188 的回复:]
note 这个表存在吗,除了自增字段外是不是只有三个字段,字段数量要对应上
[/Quote]
note表存在,而且也就三个字段。
打一壶酱油 2010-10-17
  • 打赏
  • 举报
回复
note 这个表存在吗,除了自增字段外是不是只有三个字段,字段数量要对应上
一口三个汉堡 2010-10-17
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 theforever 的回复:]
sql="insert into note values("+"'"+name+"',"+"'"+subject+"',"+"'"+memo+"')";
一般原因都是所取的这三个数据有为NULL的。
在这条语句后面加一个输出语句,输出SQL看看它的内容,看是哪个数据没取到。
[/Quote]
加了一个System.out.println(sql);
提示
insert into note values('dd','dd','ddd')
[Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。
qiuyedao 2010-10-17
  • 打赏
  • 举报
回复
应该是数据表的问题吧,看看是不是哪一个列有什么限制的设置啊!!
  • 打赏
  • 举报
回复
sql="insert into note values("+"'"+name+"',"+"'"+subject+"',"+"'"+memo+"')";
一般原因都是所取的这三个数据有为NULL的。
在这条语句后面加一个输出语句,输出SQL看看它的内容,看是哪个数据没取到。
specialco 2010-10-17
  • 打赏
  • 举报
回复
你先试下printout sql 语句是不是正确,如果正确看表类型是不是存在问题

81,092

社区成员

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

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