rs = stmt.executeQuery ( "select content from sysinfo where id="+id );
                                                               ^^^^
应该是语句的问题!!

解决方案 »

  1.   

    仔细看过你得代码之后,感觉唯一可能出问题得地方就是"select content from sysinfo where id="+id ,建议你把这个参数改为字符型,或者把你得语句改一下:
    "select content from sysinfo where id="+ String.valueOf(id);
      

  2.   

    public ResultSet getAdvertisementContent ( int id )
    {
    trynews.getAdvertisementContent ( Integer.parseInt ( id ) );int 和 Integer不是一个类型
    想想 参数不同的同名方法是两个不同的方法(重载)
      

  3.   

    是么,我也觉得是类型的问题,那怎么改呢?
    另外两位,语句应该没有错,因为我的id的int型,不能用字符串的形式!
      

  4.   

    那要怎么改啊
    完整的NewsBean是这样的:
    package dqh.news;import dqh.dbcon.DataBaseConnection;
    import java.sql.*;public class NewsBean
    {
       private Connection con;
       private ResultSet rs;
       
       public NewsBean ( )
       {
          this.con = DataBaseConnection.getConnection ( );
       }
       
       public ResultSet getSystemAdvertisement ( ) throws Exception
       {
           try
           {
              Statement stmt = con.createStatement ( );
              rs = stmt.executeQuery ( "select top 5 * from sysinfo order by id desc" );         
           }
           catch ( Exception e )
           {
              e.printStackTrace ( );
           }
            return rs;
       }
       
       public ResultSet getNews ( ) throws Exception
       {
           try
           {
              Statement stmt = con.createStatement ( );
              rs = stmt.executeQuery ( "select top 6 * from T_News order by N_Date desc" );         
           }
           catch ( Exception e )
           {
              e.printStackTrace ( );
           }
            return rs;
       }
       
       public ResultSet getAdvertisementContent ( Integer id ) throws Exception
       {
          try
          {
             Statement stmt =  con.createStatement ( );
             rs = stmt.executeQuery ( "select content from sysinfo where id="+id );
          }
          catch ( Exception e )
          {
             e.printStackTrace ( );
          }
          return rs;
       }
       
    }
      

  5.   

    看了你的bean,有几个看法:1 在你的声明con,rs时最后为它们赋上null也就是:
      private Connection con=null;
       private ResultSet rs=null;2 在每个返回rs对象的公共方法里,在try前先给rs赋上null也就是: public ResultSet getAdvertisementContent ( Integer id ) throws Exception
       {
       rs=null;
          try
          {
             Statement stmt =  con.createStatement ( );
             rs = stmt.executeQuery ( "select content from sysinfo where 
    ...3 传入的参数id 应该为 int吧? Content(Int id)...?4 string->int 请用Integer.parseInt(String) 方法,请参考java.lang.Integer包
      

  6.   

    我觉得你写的bean不是怎么好……很别扭,我给出一个,你参考//Opendb.Java
    package opendb;
    import java.sql.*;public class opendb
    {
    String sDbDriver="com.microsoft.jdbc.sqlserver.SQLServerDriver";
    String sConnstr="jdbc:microsoft:sqlserver://localhost:1433;DatabaseName=wlzx";
    String sUser="sa";
    String sPasswd="1234567";
    Connection conn=null;
    ResultSet rs=null;//构造函数
    public opendb()
    {
    try
    {
    Class.forName(sDbDriver);
    }
    catch(java.lang.ClassNotFoundException e)
    {
    System.err.println("打开数据函数失败,失败原因:"+e.getMessage());
    }}
    public void openConn()
    {
    try
    {
    conn=DriverManager.getConnection(sConnstr,sUser,sPasswd);
    }
    catch(SQLException ex)
    {
    System.err.println("连接数据库操作出错:"+ex.getMessage());
    }

    }
    //查询语句
    public ResultSet selQuery(String sql)
    {
    rs=null;
    try
    {
    if(conn!=null)
    {
    conn.close();
    }
    conn=DriverManager.getConnection(sConnstr,sUser,sPasswd);
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    rs=stmt.executeQuery(sql);
    }
    catch(SQLException ex)
    {
    System.err.println("查询操作出错:"+ex.getMessage());
    }
    return rs;
    }
    //插入语句
    public void insQuery(String sql)
    {
    try
    {
    conn=DriverManager.getConnection(sConnstr,sUser,sPasswd);
    Statement stmt=conn.createStatement();
    stmt.executeUpdate(sql);
    }
    catch(SQLException ex)
    {
    System.err.println("插入操作出错"+ex.getMessage());
    }
    }//删除语句
    public void delQuery(String sql)
    {
    try
    {
    conn=DriverManager.getConnection(sConnstr,sUser,sPasswd);
    Statement stmt=conn.createStatement();
    stmt.executeUpdate(sql);
    }
    catch(SQLException ex)
    {
    System.err.println("删除操作出错:"+ex.getMessage());
    }
    }
    public void updQuery(String sql)
    {
    try
    {
    conn=DriverManager.getConnection(sConnstr,sUser,sPasswd);
    Statement stmt=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
    stmt.executeUpdate(sql);
    }
    catch(SQLException ex)
    {
    System.err.println("插入操作出错"+ex.getMessage());
    }
    }
                                         
    }
      

  7.   

    那你的方法传值进去用String ,然后在方法里用Integer.parseInt转