什么数据库,Sqlserver的自增列吗?

解决方案 »

  1.   

    你用这样实施
    int a1 = rs.getInt(1);
      

  2.   

    不是自增列,我实际想完成的是将结果集合存入Hashtable ,代码与大家共享,如下:
    下面的代码是将数据库中的ResultSet返回的结果集保存到Hashtable 中
    本程序中rs = load(strsql);是连接数据库返回ResultSet
    int a = rs.getInt(i);//从ResultSet取值时发生错误:<Exception occrred on target VM>
    这里将 rs.getInt(i)改为 rs.getInt( rsmd.getColumnName(i))也不能正确取到数据
    我是在JSP中调用JAVABEEN
    为什么会这样,请JAVA高手指点
    public static Vector  ListResult(String strsql,int num)
      {
           ResultSet rs = null;
           ResultSetMetaData rsmd ;
           Vector ListRs = new Vector();
           try
           {
                 rs = load(strsql);
          //判断字段数据类型
          //date型 返回 93
          //int型 返回 2,4
          //bigint型 返回 3
          //String型 返回 12
          //(char 型)返回 1
                rsmd = rs.getMetaData();
                int ColumnCount = 0;
                if(num>0)
                     ColumnCount = num;
                else
                     ColumnCount = rsmd.getColumnCount();
                while (rs.next())
                {
                     Hashtable htable = new Hashtable();
                     for (int i = 1; i <= ColumnCount; i++)
                     {
                          String temp="";
                          int t = rsmd.getColumnType(i);
                          String tempcol = rsmd.getColumnName(i).toLowerCase();
                           if (t == 12 || t == 1 || t == 3)
                          {
                               temp=rs.getString(i) ;
                               if (temp == null )
                                   temp= "";
                          }
                          else if (t == 93)
                          {
                               temp =  rs.getDate(i).toString();
                          }
                          else if (t == 2 || t == 4)
                          {
                              int a = rs.getInt(i);//从ResultSet取值时发生错误:<Exception occrred on target VM>
                              temp =  Integer.toString(a);
                          }
                          htable.put(tempcol,temp);
                     }
                     ListRs.add(htable);
                }
                return ListRs;
           }
           catch (Exception listError)
           {
                System.out.println("数据库操作失败!" + listError);
                return null;
           }
           finally
           {
                try
                {
                     rs.close();
                     rs=null;
                }
                catch (Exception closeErr)
                {
                     System.out.println("关闭数据库出错:" + closeErr);
                }
           }
      }
      

  3.   

    int a = rs.getInt(i);,如果是关键字段出错
      

  4.   

    我有点忘了类型返回2,4是不是int型,楼主定义的关键字段是int型吗?用没用getLong(),getFloat(),getByte()....试一下啊?
      

  5.   

    试过了,我定义的类型为number(4,0),而且有多个字段定义相同,类型返回2,除关键字外,其他列都可以读出,JSP页中可以读出关键字。
    我都快要放弃了。
      

  6.   

    谢谢cjxiaoh(风中水滴) ,我已经决定改用在JSP页中直接操作结果集了,这个问题我想还是以后再研究吧
      

  7.   

    用 lingError.printStackTrace() 把异常堆栈打出来可能好分析