日期:2014-05-18  浏览次数:20610 次

jsp我给结算信息的结算编号的问题!!帮忙!!谢谢!!!
我要在合同信息表中插入一条合同记录,同时在结算信息表中插入该合同信息的合同编号,而结算信息的结算编号是由下面一段代码自动生成的,但是插入到表中的还是null,请帮忙看一下问题出在哪里,谢谢!!!

//结算信息中的结算编号由系统自动生成统一格式,如JS20070524001
//首先取得系统时间
//String   JDate=new   java.util.Date();
java.util.Date   JDate0=new   java.util.Date();
//格式化系统时间
SimpleDateFormat   sdf=new   SimpleDateFormat( "yyyyMMdd ");
String   JDate   =   sdf.format(JDate0);
//生成结算编号的前段部分
String   JNo= "JS "+JDate;//今天的即JS20070524
//生成结算编号的后四位--如果有包含JS20070524的结算编号,则在最大的编号后加1,如果没有包含JS20070524的结算编号,则JS200705240001
//查询是否有包含JS20070524的结算编号
String   sql3= "select   *   from   InfoJs   where   JNo   like   ' "+JNo+ "% ' ";
Statement   sts3=conn.createStatement(ResultSet.TYPE_SCROLL_SENSITIVE,ResultSet.CONCUR_UPDATABLE);
ResultSet   rs3   =   sts3.executeQuery(sql3);  

String   SJNo   =   null;
  while   (rs3.next())
  {  
      String   SJNo   =   rs3.getString( "JNo ");
      rs3.close();
  if(SJNo   !=   null){
    SJNo=SJNo+1;
    }
  else
    {
    SJNo=JNo+ "0001 ";
  }  
}

------解决方案--------------------
在合同信息表中插入一条合同记录,同时在结算信息表中插入该合同信息的合同编号
sql触发器能解决吧

代码我认为这有错
while (rs3.next())
{
String SJNo = rs3.getString( "JNo ");
rs3.close();//第一次循环就关闭rs了,循环是不是就退出了,或者有异常
if(SJNo != null){
SJNo=SJNo+1;
}
else
{
SJNo=JNo+ "0001 ";
}
}