不能插入数据,但换成SELECT请句却可以查询这是怎么回事啊?

解决方案 »

  1.   

    sql语法有错误
    换成这个试一试
    INSERT INTO User VALUES("sname","pass","ia")
      

  2.   

    state.executeQuery换成state.executeUpdate,你那个是执行查询用的。
      

  3.   

    state.executeQuery换成state.executeUpdate
      

  4.   

    executeUpdate方法能够执行INSERT,UPDATE,DELETE等操作,并且可以执行CREATE  TABLE,DROP TABLE等数据定义命令。
    executeQuery用来执行SELECET查询操作。
      

  5.   

    换成了 executeUpdate(sSQLi) 可是为什么会出现以下的语句错误?另用:if(st.next())合适么?谢谢..a3.java:16:incompatible types
    found :int
    required:java.sql.ResultSet
    ResultSet st=state.executeUpdate(sSQLi)
                                    ^
      

  6.   

    import java.io.*;
    import java.sql.*;
    import javax.swing.*;public class a3{
     public static void main(String args[]){
      try{ 
      String pass="123";
      String sname="abc";
      String ia="ccc";
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      String su="jdbc:odbc:driver={Microsoft Access DriVer (*.mdb)};DBQ=lga.mdb";
      Connection conn=DriverManager.getConnection(su,"",""); 
      Statement state=conn.createStatement();
      String sSQLi="INSERT INTO User VALUES('"+sname+"','"+pass+"','"+ia+"')";
      int st=state.executeQuery(sSQLi);
              JOptionPane.showMessageDialog(null,"已经添一条记录","姓名:"+sname+"地址: "+ia+" 密码: "+pass,JOptionPane.INFORMATION_MESSAGE);
      state.close();
      conn.close();}
      catch(Exception e){e.printStackTrace();}}
    }
      

  7.   

    在 int st=state.executeQuery(sSQLi);处再改成:int st=state.executeUpdate(sSQLi);就可以了...
      

  8.   

    同意xujun581(踏雪无痕) 。另外补充一点,调用executeQuery方法的返回值是记录集ResultSet,而调用executeUpdate方法返回的是int型的值,表示执行这个方法对数据库所造成的影响的数量,比如执行insert操作,返回值表示插入的行数(记录数量),执行UPDATE操作,返回值表示修改的记录数量等等,希望对楼主有所帮助。
      

  9.   

    怕了你了,把你的程序改好了:
    import java.io.*;
    import java.sql.*;
    import javax.swing.*;public class a3{
     public static void main(String args[]){
      try{ 
      String pass="123";
      String sname="abc";
      String ia="ccc";
      Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
      String su="jdbc:odbc:driver={Microsoft Access DriVer (*.mdb)};DBQ=lga.mdb";
      Connection conn=DriverManager.getConnection(su,"",""); 
      Statement state=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
      String sSQLi="INSERT INTO User VALUES('"+sname+"','"+pass+"','"+ia+"')";
      int st=state.executeUpdate(sSQLi);
           if(st>0){                                                                                             
              JOptionPane.showMessageDialog(null,"已经添一条记录","姓名:"+sname+"地址: "+ia+" 密码: "+pass,JOptionPane.INFORMATION_MESSAGE);}
           else{
              JOptionPane.showMessageDialog(null,"添加记录失败!","添加状态:",JOptionPane.INFORMATION_MESSAGE);}  
      //st.close();
      state.close();
      conn.close();}
      catch(Exception e){e.printStackTrace();}}
    }