生成自定义ID

#region 自动生成ID
        /// <summary>
        /// 自动生成ID
        /// </summary>
        /// <param name="Table_Name">表名</param>
        /// <param name="Pk_Name">关键字</param>
        /// <param name="Digit">位数</param>
        /// <param name="TitleMark">题头标志</param>
        /// <returns>新生成的编号</returns>
        public static string GetNewId(string Table_Name, string Pk_Name, int Digit, string TitleMark)
        {
            string strSql = "";
            strSql = "SELECT ISNULL(MAX(" + Pk_Name + "),0) FROM " + Table_Name; //查找表中最大编号
            try
            {
                string NewId;
                DataSet ds = DBComm.SQLServerOperater.ExecuteDataSet(strSql, "NewId");
                NewId = ds.Tables["NewId"].Rows[0][0].ToString();
                if (NewId != "0")
                {
                    NewId = (Convert.ToInt32(NewId.Substring(NewId.Length - Digit)) + 1).ToString();
                }
                else
                {
                    NewId = "1";
                }
                NewId = TitleMark + NewId.PadLeft(Digit, ‘0‘);
                return NewId;

}
            catch (Exception ex)
            {
                DBComm.SQLServerOperater.DALErrMsg = ex.Message;
                return null;
            }

}
        #endregion

#region 生成带日期的自定义ID

/// <summary>
        /// 生成带日期的自定义ID
        /// </summary>
        /// <param name="Table_Name">表名</param>
        /// <param name="Pk_Name">主键名</param>
        /// <param name="Digit">位数</param>
        /// <param name="TitleMark">题头标志</param>
        /// <returns></returns>
        public static string GetNewId_Date(string Table_Name, string Pk_Name, int Digit, string TitleMark)
        {
            string Date = GetSysDateTime().ToString("yyyyMMdd").Substring(2);
            string strSql = "SELECT ISNULL(MAX(" + Pk_Name + "),1) AS ID FROM " + Table_Name + " WHERE SUBSTRING(ID,2,6)=‘" + Date + "‘";
            string New_Id = "";
            try
            {
                New_Id = Pruivew.DBConn.SQLHelper.ExecuteSQLScalar(strSql).ToString();
                if (New_Id != "1")
                {
                    New_Id = TitleMark + (Convert.ToInt64(New_Id.Substring(2)) + 1).ToString();
                }
                else
                {
                    New_Id = TitleMark + Date + New_Id.PadLeft(Digit, ‘0‘);
                }
                return New_Id;
            }
            catch (Exception ex)
            {
                DBComm.SQLServerOperater.DALErrMsg = ex.Message;
                return null;
            }
        }
        #endregion
    }

生成自定义ID

时间: 2024-10-24 18:16:22

生成自定义ID的相关文章

SpringJPA主键生成采用自定义ID,自定义ID采用年月日时间格式

自定义主键生成策略 在entity类上添加注解 @Id @GeneratedValue(strategy = GenerationType.AUTO, generator = "custom-id") @GenericGenerator(name = "custom-id", strategy = "com.h5page-mapdiy.utils.CustomIDGenerator") @Column(name = "id")

Mybatis框架(9)---Mybatis自定义插件生成雪花ID做为表主键项目

Mybatis自定义插件生成雪花ID做为主键项目 先附上项目项目GitHub地址 spring-boot-mybatis-interceptor 有关Mybatis雪花ID主键插件前面写了两篇博客作为该项目落地的铺垫. 1.Mybatis框架---Mybatis插件原理 2.java算法---静态内部类实现雪花算法 该插件项目可以直接运用于实际开发中,作为分布式数据库表主键ID使用. 一.项目概述 1.项目背景 在生成表主键ID时,我们可以考虑主键自增 或者 UUID,但它们都有很明显的缺点 主

BW:如何加载和生成自定义的层次结构,在不使用平面文件的SAP业务信息仓库

介绍 通常情况下,报告需要在一个类似树的结构来显示数据.通过启用此特性在SAP BW层次结构.高级数据显示的层次结构的顶层节点.更详细的数据可以向下钻取到的层次结构中的下级节点的可视化. 考虑一个例子层次的客户联络层次",用于限定电信呼叫中心接收电话. 图1:客户联络层次 BW)" src="http://hi.csdn.net/attachment/201102/18/0_1298015417vklV.gif"> 加载层次结构的标准机制 有几种可能性供货与S

用PowerDesigner生成自定义建表语句

原文:用PowerDesigner生成自定义建表语句 我们经常用PowerDesigner来进行数据库表结构的设计,并且设计出来的表比较直观的看出之间的相互关系,方便理解:但其自动生成的脚本并不一定符合我们实际需求,所以需要经过一定配置后才能真正达到要求,下面用一个简单的案例来学习如何配置PD. 需求: 这里假设数据库代码版本维护是通过sql脚本文件来管理的,构造可重复执行的创建表.添加字段.索引等 用PowerDesigner生成符合自己实际需求的脚本,要求如下 1.建表语句可重复执行 2.表

在JavaScript中生成自定义的对象

使用对象便于组织信息.下面我们介绍如何在JavaScript中生成自定义的对象. ---------------------- JavaScript 对象 在前面几章中我们学到JavaScript中有些内置的对象,比如String, Date, Array等等.除此之外,你还可以定义自己的对象. 对象是一种特殊的数据,含有属性和函数. 下面让我们用一个例子来说明:比如一个人是一个对象.属性是与对象有联系的值,比如人的属性包括姓名,身高,体重,年龄,肤色,眼睛的颜色等等.所有人都有这些属性,但是每

php 生成唯一id的几种解决方法

网上查了下,有很多的方法 1.md5(time() . mt_rand(1,1000000)); 这种方法有一定的概率会出现重复 2.php内置函数uniqid() uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的.如需生成绝对唯一的 ID,请使用 md5() 函数". 下面方法返回结果类似:5DDB650F-4389-F4A9-A100-501EF1348872 functi

Insert后返回自动插入的生成的ID:select @@identity

当运行完插入语句后,执行select @@identity就可得到自动生成的id 如果是sql server 最好用:select SCOPE_IDENTITY() as id因为@@identity全局的 同类还有IDENT_CURRENT(‘table’) IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值.IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表.@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值.SCOPE

node生成自定义命令(yargs/commander)

第一部分可以生成一个自定义命令,例如常见的”express”,yargs和commander则可以在生成的自定义命令上做扩展,yargs将命令扩展成类似express --l xx的形式;而commander则可以扩展成类似 ‘express install xx’形式,也可以扩展成express -e xx的形式,前者写法简单,后者扩展性更好. 生成自定义命令 yargs commander 完整例子 生成自定义命令 新建文件夹test,并进入; 执行npm init 生成package.js

PHP生成唯一ID的三种方法

1.md5(time() . mt_rand(1,1000000)); 这种方法有一定的概率会出现重复 2.php内置函数uniqid() uniqid() 函数基于以微秒计的当前时间,生成一个唯一的 ID. w3school参考手册有一句话:"由于基于系统时间,通过该函数生成的 ID 不是最佳的.如需生成绝对唯一的 ID,请使用 md5() 函数". 下面方法返回结果类似:5DDB650F-4389-F4A9-A100-501EF1348872 com_create_guid()是p