A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

private void btnCreateNo_Click(object sender, EventArgs e)
        {
            this.txtEmployeeNo.Text = MultipleBLL.NewNo("Employee");
        }
public static string NewNo(string noType)
        {
            DAL.MaxIDTabDAL dal = new DAL.MaxIDTabDAL();
            return dal.GetNewNo(noType);
        }
public string GetNewNo(string noType)
        {
            using (SqlConnection conn = new SqlConnection(DBSetting.ConnText))
            {
                //取出Employee 编号数据
                conn.Open();
                SqlTransaction tran = conn.BeginTransaction();//事物 锁
                string cmdText = "SELECT NoType,NoValue,NoFormatText,NoNumLength FROM MaxIDTab where NoType = @NoType ";
                MaxIDTabInfo info = new MaxIDTabInfo();
                SqlDataReader rdr = SqlHelper.ExecuteReader(tran, CommandType.Text, cmdText, new SqlParameter("@NoType", noType));
                if (rdr.Read())
                {
                    info.NoValue = (int)rdr["NoValue"];
                    info.NoFormatText = rdr["NoFormatText"].ToString();
                    info.NoNumLength = (int)rdr["NoNumLength"];
                }
                rdr.Close();

                //更新最大编号//把NoValue加1
                string updateCmdText = "UPDATE MaxIDTab SET NoValue = @NoValue  WHERE NoType = @NoType ";
                SqlHelper.ExecuteNonQuery(tran, CommandType.Text, updateCmdText
                    , new SqlParameter("@NoValue", (info.NoValue + 1))
                        , new SqlParameter("@NoType", noType));// 1

                tran.Commit();//解锁
               
                //把NoValue左侧补充0,长度为NoNumLengt
                //把NoValue格式化为 NoFormatText
                return string.Format(info.NoFormatText, info.NoValue.Value.ToString().PadLeft(info.NoNumLength.Value, '0'));
        
            }


        }

评分

参与人数 1技术分 +2 收起 理由
宋天琪 + 2

查看全部评分

1 个回复

正序浏览
不错。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马