import java.sql.*;import javax.xml.crypto.Data;
class SJK
{ public static void main(String a[]) throws ClassNotFoundException, SQLException
  { try{  Connection con = null;
  Statement stmt=null;
  ResultSet rs=null;
  Class.forName("sun.jdbc.odbc.JdbcOdbcDriver"); String url="jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=e:\\1.mdb";
  con =DriverManager.getConnection(url);
  stmt =con.createStatement();
  String sqlstmt="SELECT sno" + "FROM 1 WHERE name='张山'";
  rs=stmt.executeQuery(sqlstmt);
 while(rs.next())
  {
  
  int sno=rs.getInt("sno");
  System.out.println(sno);
 

 }
  }catch (Exception e){System.out.println(e);
  }}}
出现这样的异常:
java.sql.SQLException: [Microsoft][ODBC Microsoft Access 驱动程序] 语法错误 (操作符丢失) 在查询表达式 'snoFROM 1 WHERE name='张山'' 中。
牛人指点下!

解决方案 »

  1.   


    String sqlstmt="SELECT sno FROM 1 WHERE name='张山'";
      

  2.   

    ="SELECT sno" + "FROM 1 WHERE name='张山'  空格 ="SELECT sno " + "FROM 1 WHERE name='张山'
      

  3.   

    把sql语句打印出来看看是否正确
      

  4.   

    你这个sql是拼出来,所以要小心空格问题。很多时候变量名可能和关键字之间少了空格,这是,这个sql就报错了。
    其实从报的错误,也可以出是什么问题了。以后还是好好分析下给的提示吧。
      

  5.   

    java.sql.SQLException: [Microsoft][ODBC Microsoft Access 驱动程序] 参数不足,期待是 2。
    这是出了什么错误呢
      

  6.   

    String sqlstmt="SELECT sno" + "FROM 1 WHERE name='张山'";
    FROM 前面少个空格,加上就可以了,记得给分
      

  7.   

    建议 Java 学习者不要使用那个什么 Acess 的办公用品,连 Derby, HSQLDB 等内存数据库都比它先进。最好能使用 C/S 结构的数据库,可以先用 MySQL,以后再用 Oracle
      

  8.   

    String sqlstmt="SELECT sno" + "FROM 1 WHERE name='张山'";
     
    中间 form 要和查询的表 中间 空出来 不能连起来否则的话肯定会出错的如下:String sqlstmt="SELECT 列名 " + " FROM  表名  WHERE name='张山'";
     列表字段名 和 表名称 对的话 这条语句就不会有问题