思路:
1.有一个专门的表CONF放最后的编号值,每次从此表中取出值后增减1,如果出错则重复这个过程.
2.取出的值为唯一的值.
- public string getbh(string strVkey,string strFlag)
- {
- string strSql,strRet;
- DataRow dr;
- bool lbFlag = false;
- int intLoop = 1;
- int intVal = 0;
- strSql = "select VALUE from CONF where VKEY='" + strVkey + "'";
- dr = this.createRow(strSql);
- strRet = dr[0].ToString();
- do
- {
- try
- {
- if(strFlag == "+")
- strRet = (Convert.ToInt32(strRet)+1).ToString();
- else
- strRet = (Convert.ToInt32(strRet)-1).ToString();
- strSql = "update CONF set VALUE='" + strRet + "'where VKEY='" + strVkey + "'";
- lbFlag = this.runSql(strSql);
- if(lbFlag)
- {
- intVal = 1;
- }
- else
- {
- intVal = 0;
- }
- }
- catch
- {
- intVal = 0;
- }
- }while (intVal == 0 && intLoop < 5);
- if (intLoop>=5)
- {
- return "-1";
- }
- else
- {
- return strRet;
- }
- }
- }

浙公网安备 33010602011771号