首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > Java Web开发 >

插入语句提交有关问题

2012-01-07 
插入语句提交问题%try{Stringdbpath c:\\Tomcat5.0\\webapps\\test\\WEB-INF\\lib\\data\\t_test.mdb

插入语句提交问题
<%
    try{
        String   dbpath= "c:\\Tomcat   5.0\\webapps\\test\\WEB-INF\\lib\\data\\t_test.mdb ";
        String   url   = "jdbc:odbc:Driver={Microsoft   Access   Driver   (*.mdb)};DBQ= "+dbpath;
        Class.forName( "sun.jdbc.odbc.JdbcOdbcDriver ");
        Connection   conn=   DriverManager.getConnection(url);
        Statement   stmt=conn.createStatement  
    (ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);  
   
        String   strdoType=(String)request.getParameter( "doType ");
        if   (strdoType.equals( "insert "))
        {
          String   s_xh= "002 ";
          String   s_name=request.getParameter( "s_name ");
          String   s_xb=request.getParameter( "s_xb ");
          String   s_km=request.getParameter( "s_km ");
          String   s_cj=request.getParameter( "s_cj ");
          String   sql= "insert   into   student(s_xh,s_name,s_xb,s_km,s_cj,s_user)   vlues( ' "+s_xh+ " ', "+
                " ' "+s_name+ ", ' "+s_xb+ " ', ' "+s_km+ " ', "+s_cj+ ") ";
          ResultSet   rs=stmt.executeQuery(sql);//这句有错?
          rs.close();
          stmt.close();
          conn.close();
          }
      }
      catch(Exception   e)
      {  
      out.print( "数据库连接错误!,错误信息如下: <br> ");  
      out.print(e.getMessage());  
    }  
    %>

问题:
ResultSet   rs=stmt.executeQuery(sql);语句中,如果sql是查询语句,则该语句可以执行,如果是象上面一样是插入语句,则出错,请问插入语句应该怎么提交?

[解决办法]
= "insert into student(s_xh,s_name,s_xb,s_km,s_cj,s_user) vlues( ' "+s_xh+ " ', "+
" ' "+s_name+ ", ' "+s_xb+ " ', ' "+s_km+ " ', "+s_cj+ ") ";

這句麼?首先values 不是vlues,

其次,報的什麼錯啊?
[解决办法]
insert into student(s_xh,s_name,s_xb,s_km,s_cj,s_user) vlues( ' "+s_xh+ " ', "+
" ' "+s_name+ ", ' "+s_xb+ " ', ' "+s_km+ " ', "+s_cj+ ") ";
另外这里的字段名是六个,而你的字段值是五个
[解决办法]
executeQuery是执行查询时候用的

插入应该写成:

ResultSet rs=stmt.executeUpdate(sql);
[解决办法]
= "insert into student(s_xh,s_name,s_xb,s_km,s_cj,s_user) vlues(\ ' "+s_xh+ "\ ',\ ' "+s_name+ "\ ',\ ' "+s_xb+ "\ ',\ ' "+s_km+ "\ ',\ ' "+s_cj+ "\ ',\ ' "+s_user+ "\ ') ";


[解决办法]
换成stmt.executeUpdate(sql);
只有查询可以用stmt.executeQuery(sql);
[解决办法]
shendiaoke(风尘豪客) 说的对

你INSERT 语句也不对,插入对象是6个,可你给他的值只有5个
肯定是插不进去的
[解决办法]
executeUpdate(sql)--》返回的是int,
意思是:删除或者更新或者插入几条数据

executeQuery(sql)--> 执行查询,返回的是ResultSet

把JDBC基础学好


[解决办法]
int count=stmt.executeUpdate(sql);

左边是ResultSet 右边是int

当然会有错了
[解决办法]
直接 stmt.executeUpdate(sql); 执行插入就OK了

不是做查询需要返回值

热点排行