创建ID

  /// <summary>
        /// 生成新增的树型节点ID的方法
        /// </summary>
        /// <param name="TableName">表名</param>
        /// <param name="KeyName">关键字名</param>
        /// <param name="OldID">原ID</param>
        /// <param name="Step">步长</param>
        /// <returns>返回一个新节点的ID</returns>
        private string BuildNewID(string TableName, string KeyName, string OldID, int Step)
        {
            StringBuilder strSql = new StringBuilder();

            //SQL语句的拼接
            strSql.Append("SELECT ");
            strSql.Append(KeyName);
            strSql.Append(" FROM ");
            strSql.Append(TableName);
            strSql.Append(" WHERE ");
            strSql.Append(KeyName);
            strSql.Append(" LIKE @");
            strSql.Append(KeyName);
            strSql.Append(" ORDER BY ");
            strSql.Append(KeyName);
            strSql.Append(" DESC");

            //初始化新增组织的ID
            string NewID = "";

            //参数的设置
            SqlParameter parm = new SqlParameter("@" + KeyName, SqlDbType.VarChar);
            parm.Value = OldID.PadRight(OldID.Length + Step, '_');

            //执行新增组织ID的操作
            using (SqlConnection conn = new SqlConnection(SqlHelper.ConnectionString))
            {
                object obj = SqlHelper.ExecuteScalar(conn, CommandType.Text, strSql.ToString(), parm);
                if (obj != null)
                {
                    NewID = (string)obj;
                    NewID = OldID + (Convert.ToInt16(NewID.Substring(OldID.Length, NewID.Length - OldID.Length)) + 1).ToString().PadLeft(Step, '0');
                }
                else                //如果组织下无下属组织,则在原组织下直接加上01
                {
                    NewID = OldID.PadRight(OldID.Length + Step - 1, '0') + "1";
                }
            }

            //返回新组织的ID
            return NewID;
        }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值