String strSQL="insert into PhoneBook(name,sex,number,address)
     values"+name+","+sex+","+number+","+address+")";
stmt.executeUpdate(strSQL);
========================================================================================
name,sex,number,address是四个变量,运行的时候提示insert into语句有错误,为什么?

解决方案 »

  1.   

    没有办法做测试.但在PhoneBook, values后加上空格试试?
      

  2.   

    String strSQL="insert into PhoneBook(name,sex,number,address)
         ①values"+name+","+sex+","+number+","+address+")";①->values('" + name + "','" + sex + "','" + number + "','" + address + "')";
      

  3.   

    再打出strSQL看看不用java直接更新表行不行.
      

  4.   

    String strSQL="insert into PhoneBook(name,sex,number,address)
         values ('"+name+"','"+sex+"',"+number+",'"+address+"')";
    stmt.executeUpdate(strSQL);记住字符类型的要用 ' 括起来
      

  5.   

    values('" + name + "','" + sex + "','" + number + "','" + address + "')";写程序一定要细心
      

  6.   

    还是不行,但还是谢谢大家了!
    我把代码发出来,大家再帮忙看看吧!谢谢了!
    ====================================================================
    import java.sql.*;public class Insert { public static void main(String[] args) {
    String name="123";
    String sex="n";
    String number="12345678";
    String address="cd";
    String DriverName="sun.jdbc.odbc.JdbcOdbcDriver";
    String DBURL="jdbc:odbc:PhoneBook";
    Connection conn=null;
    Statement stmt;

    try{
    Class.forName(DriverName);
    }
    catch(ClassNotFoundException e)
    {
    System.out.println("无法加载JDBC驱动");
    return;
    }
    catch(Exception e)
    {
    System.out.println(e.getMessage());
    return;
    }
    try{
    conn=DriverManager.getConnection(DBURL);
    stmt=conn.createStatement();
    String strSQL="insert into PhoneBook (name,sex,number,address) values ('"+name+"','"+sex+"','"+number+"','"+address+"')";
    stmt.executeUpdate(strSQL);
    stmt.close();
    conn.close();
    }
    catch(SQLException c)
    {
    System.out.println(c.getMessage());
    }
    catch(Exception e)
    {
    System.out.println(e.getMessage());
    }
    finally
    {
    if(conn!=null)
    {
    try
    {
    conn.close();
    }
    catch(Exception e)
    {
    e.printStackTrace();
    }
    }
    }
    }

    }
      

  7.   

    什么错误帖以下!
    number是什么字段类型?如果是int,不要加引号
      

  8.   

    [Microsoft][ODBC Microsoft Access Driver] INSERT INTO 语句的语法错误。
    所有的都是字符串
      

  9.   

    你插入的数据类型要和你数据库的表一致,,CHAR,VARCHAR,,,的都 加上单引号,,,如INT FLOAT的就不用加单引号
      

  10.   

    catch(SQLException c)
    {
    System.err.println(sql);//你把sql语句打印出来
    System.out.println(c.getMessage());

    }然后看看sql语句对不对,放到数据库去执行看看就明白了
      

  11.   

    你的程序:try{
    conn=DriverManager.getConnection(DBURL);
    stmt=conn.createStatement();
    String strSQL="insert into PhoneBook (name,sex,number,address) values ('"+name+"','"+sex+"','"+number+"','"+address+"')";
    stmt.executeUpdate(strSQL);
    stmt.close();
    conn.close();
    }
    catch(SQLException c)
    {
                    加这个:       System.err.println(sql);//你把sql语句打印出来
    System.out.println(c.getMessage());
    }
    catch(Exception e)
    {
    System.out.println(e.getMessage());
    }
    finally
    {
      

  12.   

    把sql语句放数据库里试一下就知道哪儿错了.
      

  13.   

    jihanzhong(逍遥) 
    =====================================
    添加那一句之后提示无法解析sql,我用的是eclipse
      

  14.   

    哦~!你的是strSQL
    抱歉没看你程序
      

  15.   

    insert into youtable values('','','','字段名');
      

  16.   

    回复人: jihanzhong(逍遥) ( ) 信誉:100 
    ==================================================
    一样的,都试过了,都不能解析!
      

  17.   

    把你的strSQL定义到try外边
    System.out.println(strSQL);//
      

  18.   

    PhotoNumber
    不是number
    -______-;