我写的个人账本包括in,whenin,out,whenout,howout,bor,whenbor,whobor字段,分别代表提款金额,提款日期,花钱金额花钱日期,花钱原因,借款金额,借款日期,借款人。我的意思是想在一个form里面填写这些内容,但是不要求一次全部填写,可以有空,然后按submit写入“cash”表,代码如下:<%  
String submit=request.getParameter("in");
//这一句我也很勉强写出来,submit只是接收了in的内容,其他怎么办?

if(submit==null)
{
session.setAttribute("Done","");}else{
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url="jdbc:odbc:cash";
Connection conn=DriverManager.getConnection(url);
Statement stmt=conn.createStatement();
ResultSet rs=stmt.executeQuery("select * from cash");


String strSQL;
String inSql,wheninSql,outSql,whenoutSql,howoutSql,borSql,whenborSql,whoborSql; inSql=request.getParameter("in");
wheninSql=request.getParameter("whenin");
outSql=request.getParameter("out");
whenoutSql=request.getParameter("whenout");
howoutSql=request.getParameter("howout");
borSql=request.getParameter("bor");
whenborSql=request.getParameter("whenbor");
whoborSql=request.getParameter("whobor");


if(session.getAttribute("Done")!="yes")
{strSQL="INSERT INTO cash(in,whenin,out,whenout,howout,bor,whenbor,whobor)Values('"+inSql+"','"+wheninSql+"','"+outSql+"','"+whenoutSql+"','"+howoutSql+"','"+borSql+"','"+whenborSql+"','"+whoborSql+"')";stmt.executeUpdate(strSQL);

}

stmt.close();
conn.close();
rs.close();
} %>但是老是出现错误,tomcat告诉我说:HTTP Status 500 - --------------------------------------------------------------------------------type Exception reportmessage description The server encountered an internal error () that prevented it from fulfilling this request.exception javax.servlet.ServletException: [Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。
不解,是否insert表达错误?
在线等,请教各位!谢谢!

解决方案 »

  1.   

    String inSql;
    inSql=request.getParameter("in");//接收text里面的内容
    Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
    Connection con=DriverManager.getConnection("jdbc:odbc:cash");
    //干脆改成直接插入一个“4444”的String,但是还是说INSERT INTO语法错误
    String strSQL="insert into cash(in) values('44444')";
    Statement stmt=con.createStatement();
    stmt.execute(strSQL);我看过access里面的表了,都是文本字段
      

  2.   

    可能是你没有初始化,数值型字段副了null这个值,
    你可以out.print(strSQL);看看语法,格式对不对,贴到sql plus中运行一下,能运行就没错!
      

  3.   

    注意一下,in,out等是不是保留字啊,Oracle我不太懂,自己试试吧
      

  4.   

    谢谢!!!真的是in、out为保留字,我真笨!!谢谢各位!!