String a="";
     a=rs.getString(1);
     System.out.print("错误信息" +a);
     System.out.print("  a的值是" +a);
试试这样应该没有问题吧
我想关键就在rs.getString(1);
你改成rs.getString(字段名);试试

解决方案 »

  1.   

    这说明a=rs.getString(1)是空你肯定没取到值,
    可能是你的rs没有读到记录
      

  2.   

    还有一种可能就是记录指针问题和你用的取记录的方式有关
    、如果你的记录集不支持上下滚动的话你这么写就有错误
    System.out.print("错误信息" +rs.getString(1));
    就是说这句能输出正确值,
    a=rs.getString(1);
         而这句为空则证明你的记录集不支持自由滚动,也就是你的第一个rs读完后指针下移第二就找不到记录了
      

  3.   

    按大家的方法做了,还是不行,一样的结果,我本来是想从数据库里读出一个值,然后把这个值赋给a这个变量的,但一直都附不过去,真头痛
    附值前值为:Employees  a的值是nullrs=myDataBean.GetRs("select fPropertiesValue from tReportDetail where fControlName='content1' and fProperties='Table'","a");if (rs.next())
    {
         System.out.print("附值前值为:" +rs.getString("fPropertiesValue"));
         String a="";
         a=rs.getString("fPropertiesValue");
         System.out.print("  a的值是" +a);
    }
    rs.close();
      

  4.   

    kingmaxno1(学会飞翔) 所言极是,但有什么办法避免这种情况吗?还有个对我来说有点难的问题
       ResultSet rs2=myDataBean.GetRs("select * from " +sTable,"s");
       while (rs2.next())
       {
        for(i=0;i<intColCount;i++)
        {
           out.print(rs2.getString(sField[i]));     //这行出问题
        }出错信息为:
    An error occured in the bean. Error Message is: [Microsoft][SQLServer JDBC Driver]ResultSet can not re-read row data for column 1.
    就是因为这个错误,偶研究上边哪个问题就是为了解决这个错误的
      

  5.   

    我知道了  是这个驱动的bug 有时后他不支持 select *
    你直接写select 字段1,字段2,字段3...
      

  6.   


    rs=myDataBean.GetRs("select fPropertiesValue from tReportDetail where fControlName='content1' and fProperties='Table'","a");if (rs.next())
    {
         System.out.print("附值前值为:" +rs.getString("fPropertiesValue"));
         String a="";     这里应加上一句: 
         rs.previous();     a=rs.getString("fPropertiesValue");
         System.out.print("  a的值是" +a);
    }
    rs.close();
      

  7.   

    怎么老是遇到这个问题呢?这个问题很容易解决!
    ResultSet取列值只能取一次!
    System.out.print("错误信息" +rs.getString(1));--------第一次取,取到了
    String a="";
    a=rs.getString(1);-------第二次取,没取到
    System.out.print("  a的值是" +a);所以建议你设置一个临时变量,只取一次值;
    String temp = rs.getString(1);
    System.out.print("错误信息" +temp);
    String a="";
    a = temp;
    System.out.print("  a的值是" +temp);
      

  8.   

    to: laurel_yiyi() 
    按你所说加了上去,出错信息为:
    An error occured in the bean. Error Message is: Result set type is TYPE_FORWARD_ONLYStack Trace is
    好象 Result set 只可以向后不可以向前,是吗?
    ====================
    另to   jfy3d(剑事) :按建议做了改动,还是一样喔
       strSQL="select EmployeeID,LastName,FirstName,Title,TitleOfCourtesy,BirthDate,HireDate,Address,City,";
       strSQL=strSQL+"Region,PostalCode,Country,HomePhone,Extension,Photo,Notes,ReportsTo,PhotoPath from " +sTable;
       ResultSet rs2=myDataBean.GetRs(strSQL,"s");
       System.out.print(strSQL);
       while (rs2.next())
       {
        for(i=0;i<intColCount;i++)
        {
           out.print(rs2.getString(sField[i]));
        }
       }
       rs2.close();
     }
    出错信息:An error occured in the bean. Error Message is: [Microsoft][SQLServer JDBC Driver]ResultSet can not re-read row data for column 3.====无论问题能否解决,都先感谢各位大侠的帮助先====
      

  9.   

    同意luoyewuhen(落叶无痕),你的rs.getString只能用一次,如果你想用几次,可以用一个临时变量将取出的值缓存起来,就如:
    String temp=rs.getString(1);
    System.out.prinln(temp);
      

  10.   

    搞定啦
        for(i=0;i<intColCount;i++)
        {
            rs2.first();
           out.print(rs2.getString(sField[i]));
         out.print("</td>");  //列结束
        }
       }
    谢谢各位老前辈