supegong  

思路:

1.有一个专门的表CONF放最后的编号值,每次从此表中取出值后增减1,如果出错则重复这个过程.

2.取出的值为唯一的值.



  1. public string getbh(string strVkey,string strFlag)   
  2.         {   
  3.             string strSql,strRet;   
  4.             DataRow dr;   
  5.             bool lbFlag = false;   
  6.             int intLoop = 1;   
  7.             int intVal = 0;   
  8.   
  9.             strSql = "select VALUE from CONF where VKEY='" + strVkey + "'";   
  10.             dr = this.createRow(strSql);   
  11.   
  12.             strRet = dr[0].ToString();   
  13.   
  14.             do  
  15.             {   
  16.                 try  
  17.                 {   
  18.                     if(strFlag == "+")   
  19.                         strRet  = (Convert.ToInt32(strRet)+1).ToString();   
  20.                     else  
  21.                         strRet  = (Convert.ToInt32(strRet)-1).ToString();   
  22.   
  23.                     strSql = "update CONF set VALUE='" + strRet + "'where VKEY='" + strVkey + "'";   
  24.                     lbFlag = this.runSql(strSql);   
  25.                     if(lbFlag)   
  26.                     {   
  27.                         intVal = 1;   
  28.                     }   
  29.                     else  
  30.                     {   
  31.                         intVal = 0;   
  32.                     }   
  33.                 }   
  34.                 catch  
  35.                 {   
  36.                     intVal = 0;   
  37.                 }   
  38.             }while (intVal == 0 && intLoop < 5);   
  39.   
  40.             if (intLoop>=5)   
  41.             {   
  42.                 return "-1";   
  43.             }   
  44.             else  
  45.             {   
  46.                 return strRet;   
  47.             }   
  48.         }   
  49. }  
posted on 2007-09-07 15:36  supegong  阅读(558)  评论(0)    收藏  举报