InputStream ais=rs.getAsciiStream(3);

解决方案 »

  1.   

    是不是rs.getString(3)用了两次?
    如果是这样将你连接数据库的bean中代码改一下,如下:
    stmt = con.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_READ_ONLY);
    -->
     stmt = conn.createStatement(ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_UPDATABLE);
      

  2.   

    我在什么地方取了两次,我取了一次呀,是不是我的BEAN中取得this._intRowCount = rs.getRow() ;的时间用了一次。你给我说的,还真管用,一会我就给你结分。呵呵
      

  3.   

    唉!我来晚了!不管取也多少次,我觉得最好不要用getString(int)方法来读取text类型的。还是用InputStream ais=rs.getAsciiStream(3);
    方式会好一些!
      

  4.   

    不晚,不晚,InputStream ais=rs.getAsciiStream(3);取得以后,我如何打在页面上显示?String _strGetText ;_strGetText = (String)InputStream.toString() ;out.println(strGetText ) ;这样显示出来吗?
      

  5.   

    InputStream ais=rs.getAsciiStream(3);
    try
    {
      int c;
      String _strGetText ="";
      char temp;
      while((c= ais.read())>-1)
      {
         temp=(char)c;
         _strGetText =_strGetText +temp;
      } 
    }catch(IOException e)
    {
      e.printStackTrace();
    }
      

  6.   

    楼上已帮我说了,另外我要补充一下:在这种情况下一般不要用一个String=String+String来进行叠加,这样字符串相加效率很低的,最好用StringBuffer的append()方法,最后再.toString()转为字符串,效率是百分之几90的提高!不妨可做个实验
    。总之像SQLSERVER的image,text,还有Oracle和DB2的blob,clob等类型的字段(称为大字段)都不要用简单的getString()来获取,都要用流来转换,不然会有意想不到的结果!我就说这么多啦!