不更换jdbc 的驱动的前提下。
这个里面有段代码。
http://community.csdn.net/Expert/topic/4809/4809371.xml?temp=.8517877
/**
 * 当数据库字段为Text类型时调用
 * @param rs
 * @param col
 * @return
 */
public static String getClobString(ResultSet rs, String col) {
    try {
        Reader reader = rs.getCharacterStream(col);
        if (reader == null) {
            return null;
        }
        StringBuffer sb = new StringBuffer();
        char[] charbuf = new char[4096];
        for (int i = reader.read(charbuf); i > 0; i = reader.read(charbuf)) {
            sb.append(charbuf, 0, i);
        }
        return sb.toString();
    } catch (Exception e) {
        return "";
    }
}不知道怎么解决这个楼主的,给他发短消息也无影无踪。
这样的方法
getString()取得的是null时候,你可以在把要在画面上显示的值显示成" "!
如if getString("field")==null
  {
       画面上显示的值="";
   }
   else
   {
       画面上显示的值=getString("field")
   }
也没有效果。
其实问题的关键不是怎么处理为null的问题,而是只要值为null,而我又用getString()去取的话就会报异常:
[Microsoft][SQLServer 2000 Driver for JDBC]Underlying input stream returned zero bytes....

。希望各位 看完整了 在回答    高人你们怎么解决的呢

解决方案 »

  1.   

    其实问题的关键不是怎么处理为null的问题,而是只要值为null,而我又用getString()去取的话就会报异常
    =========
    不能吧!
    值不为null的时候正常?(怀疑ResultSet 没有取成功)
    :先判断一下结果集是否为空呀
      

  2.   

    to  malligator(不能再整天泡在CSDN里了!) 你的裤衩怎么穿的啊, 如果不取text类型这个字段的内容,没有任何问题,希望不要怀疑什么“ResultSet 没有取成功”之类的话
      

  3.   

    你取得时候看看sqlserver有米有类似oracle nvl(xxx,xxx)这样的函数,如果字段为空,先在sql里转成 ' ',然后再getString
      

  4.   

    2种方法可以解决,
    1.一个是设置默认为'',还有先统计他是否有数据,没有就用空表示
    2.假设表a里面字段a1为Text字段,当查询的时候用select case when datalength(a1)=0 then ' ' else a1 end as a1 from a,第二种方法最笨,数度也不太好如果你觉得都不好可以换一种连接方式,比如jtds,开源网上有的.