public Coderule CreateCoderule(Coderule info)
        {
            try
            {
                string sqlCommand = @"INSERT INTO ""CODERULE"" (""CODEPREFIX"",""RULENAME"",""ISNEEDCODEPREFIX"",""ISDEFAULT"",""STARTNUMBER"",""NUMBERWIDTH"",""YEARWIDTH"",""CURRENTNO"",""CURRENTSERIALNUMBER"") VALUES (:Codeprefix,:Rulename,:Isneedcodeprefix,:Isdefault,:Startnumber,:Numberwidth,:Yearwidth,:Currentno,:Currentserialnumber)";
                this.Database.AddInParameter(":Codeprefix", info.Codeprefix);//DBType:VARCHAR2
                this.Database.AddInParameter(":Rulename", info.Rulename);//DBType:NVARCHAR2
                this.Database.AddInParameter(":Isneedcodeprefix", info.Isneedcodeprefix);//DBType:NUMBER
                this.Database.AddInParameter(":Isdefault", info.Isdefault);//DBType:NUMBER
                this.Database.AddInParameter(":Startnumber", info.Startnumber);//DBType:NUMBER
                this.Database.AddInParameter(":Numberwidth", info.Numberwidth);//DBType:NUMBER
                this.Database.AddInParameter(":Yearwidth", info.Yearwidth);//DBType:NUMBER
                this.Database.AddInParameter(":Currentno", info.Currentno);//DBType:NUMBER
                this.Database.AddInParameter(":Currentserialnumber", info.Currentserialnumber);//DBType:VARCHAR2
                this.Database.ExecuteNonQuery(sqlCommand);

            }
            finally
            {
                this.Database.ClearParameter();
            }
            return info;
        }
 /// <summary>
 /// //�����ʽ��ǰ׺+��+��+��ˮ�ţ�3λ��,���磺201106001
 /// </summary>
 /// <param name="codePreFix"></param>
 /// <returns></returns>
 public string GenerateCodeRule(string  codePreFix,bool isDefaultYYYYMMDD)
 {
     if (string.IsNullOrEmpty(codePreFix))
     {
         return string.Empty;
     }
     var codeRules = this.RetrieveCoderuleByCodeprefix(codePreFix);
     if (codeRules == null)
     {
         codeRules = new Coderule();
         codeRules.Codeprefix = codePreFix;
         codeRules.Currentno = 0;
         //codeRules.Isneedcodeprefix = 1;
         codeRules.Isneedcodeprefix = true;
         codeRules.Isdefault = isDefaultYYYYMMDD;
         codeRules.Startnumber = 1;
         codeRules.Numberwidth = 4;
         try
         {
             this.BeginTransaction();
             this.CreateCoderule(codeRules);
             this.Commit();
         }
         catch{this.Rollback();}
     }
     var content = new StringBuilder();
     //if (codeRules.Isneedcodeprefix==1)
     if (codeRules.Isneedcodeprefix)
     {
         content.Append(codeRules.Codeprefix);
     }
     //switch (codeRules.CodeMode)
     //{
     //    case CodeMode.Day:
     //        if (codeRules.YearWidth == 4)
     //        {
     if(codeRules.Isdefault)
     {content.Append(DateTime.Today.ToString("yyyyMMdd"));}
     //        }
     //        else
     //        {
     //            content.Append(DateTime.Today.ToString("yyMMdd"));
     //        }
     //        break;
     //    case CodeMode.Month:
     //        if (codeRules.YearWidth == 4)
     //        {
     //            content.Append(DateTime.Today.ToString("yyyyMM"));
     //        }
     //        else
     //        {
     //            content.Append(DateTime.Today.ToString("yyMM"));
     //        }
     //        break;
     //    case CodeMode.Year:
     //        if (codeRules.YearWidth == 4)
     //        {
     //            content.Append(DateTime.Today.ToString("yyyy"));
     //        }
     //        else
     //        {
     //            content.Append(DateTime.Today.ToString("yy"));
     //        }
     //        break;
     //    default:
     //        break;
     //}
     if (codeRules.Currentno == 0)
     {
         codeRules.Currentno = codeRules.Startnumber;
     }
     else
     {
         codeRules.Currentno += 1;
     }
     content.Append(ToLengthString((int)codeRules.Currentno, (int)codeRules.Numberwidth));
     codeRules.Currentserialnumber = content.ToString();
     this.UpdateCoderuleByCodeprefix(codeRules);
     return codeRules.Currentserialnumber;
 }
 public Coderule UpdateCoderuleByCodeprefix(Coderule info)
 {
     try
     {
         this.Database.AddInParameter(":Codeprefix", info.Codeprefix);//DBType:VARCHAR2
         this.Database.AddInParameter(":Rulename", info.Rulename);//DBType:NVARCHAR2
         this.Database.AddInParameter(":Isneedcodeprefix", info.Isneedcodeprefix);//DBType:NUMBER
         this.Database.AddInParameter(":Isdefault", info.Isdefault);//DBType:NUMBER
         this.Database.AddInParameter(":Startnumber", info.Startnumber);//DBType:NUMBER
         this.Database.AddInParameter(":Numberwidth", info.Numberwidth);//DBType:NUMBER
         this.Database.AddInParameter(":Yearwidth", info.Yearwidth);//DBType:NUMBER
         this.Database.AddInParameter(":Currentno", info.Currentno);//DBType:NUMBER
         this.Database.AddInParameter(":Currentserialnumber", info.Currentserialnumber);//DBType:VARCHAR2
         string sqlCommand = @"UPDATE ""CODERULE"" SET  ""RULENAME""=:Rulename , ""ISNEEDCODEPREFIX""=:Isneedcodeprefix , ""ISDEFAULT""=:Isdefault , ""STARTNUMBER""=:Startnumber , ""NUMBERWIDTH""=:Numberwidth , ""YEARWIDTH""=:Yearwidth , ""CURRENTNO""=:Currentno , ""CURRENTSERIALNUMBER""=:Currentserialnumber WHERE  ""CODEPREFIX""=:Codeprefix";
         this.Database.ExecuteNonQuery(sqlCommand);
     }
     finally
     {
         this.Database.ClearParameter();
     }
     return info;
 }