关于计数以及Index返回订单号升级版可以控制年月日累计(不重复)(sqlite)

1数据库创建:

csharp 复制代码
RAGMA foreign_keys = false;

-- ----------------------------
-- Table structure for OrderSIndex
-- ----------------------------
DROP TABLE IF EXISTS "OrderSIndex";
CREATE TABLE "OrderSIndex" (
  "Id" INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,
  "OrderName" nvarchar(40),
  "OrderIndexInSigle" integer,
  "IndexType" integer,
  "CreateDate" datetime,
  "Updated" datetime,
  "ThisSigle" nvarchar(20)
);

-- ----------------------------
-- Auto increment value for OrderSIndex
-- ----------------------------
UPDATE "sqlite_sequence" SET seq = 4 WHERE name = 'OrderSIndex';

PRAGMA foreign_keys = true;

Model数据:

csharp 复制代码
 /// <summary>
    /// 
    /// </summary>
    public class OrderSIndex
    {

        /// <summary>
        /// 
        /// </summary> 
        [Description("")]
        public int Id { get; set; }
        /// <summary>
        /// 
        /// </summary> 
        [Description("")]
        public string OrderName { get; set; }
        /// <summary>
        /// 
        /// </summary> 
        [Description("")]
        public int OrderIndexInSigle { get; set; }
        /// <summary>
        /// 
        /// </summary> 
        [Description("")]
        public int IndexType { get; set; }
        /// <summary>
        /// 
        /// </summary> 
        [Description("")]
        public DateTime CreateDate { get; set; }
        /// <summary>
        /// 
        /// </summary> 
        [Description("")]
        public DateTime Updated { get; set; }
        /// <summary>
        /// 
        /// </summary> 
        [Description("")]
        public string ThisSigle { get; set; }
    }

DAL操作

csharp 复制代码
 public  class DALOrderSIndex
    {
        /// <summary>
        ///获取当前 0月累计,1日累计,2年累计,3,总共累计
        /// </summary>
        /// <param name="SetNoType"> 0月累计,1日累计,2年累计,3,总共累计</param>
        /// <param name="SetKeyword">当前关键字(需要的表单名子)</param>
        /// <param name="OutIndexLength">index编号长度 0001 就是4 </param>
        /// <returns></returns>
        public string OutIndexStr(string SetKeyword, int SetNoType = 0, int OutIndexLength = 5)
        {
            string ThisSigle;
            switch (SetNoType)
            {
                case 0:
                    ThisSigle = $"{DateTime.Now.Year}{DateTime.Now.ToString("MM")}";
                    break;
                case 1:
                    ThisSigle = DateTime.Now.ToString("yyyyMMdd");
                    break;
                case 2:
                    ThisSigle = DateTime.Now.Year.ToString();
                    break;
                default://3
                    ThisSigle = string.Empty;//数据空
                    break;
            }
            string OutStr;
            string sqlQurey = $"select * from OrderSIndex where OrderName = '{SetKeyword}' and ThisSigle = '{ThisSigle}'";
            string SqlInsert = $"insert into  OrderSIndex (OrderName,OrderIndexInSigle,IndexType,CreateDate,Updated,ThisSigle) values('{SetKeyword}',1,{SetNoType},datetime('now','localtime'),datetime('now','localtime'),'{ThisSigle}')";
            string SqlUpdate = $"Update OrderSIndex set OrderIndexInSigle=OrderIndexInSigle +1 where OrderName = '{SetKeyword}' and ThisSigle = '{ThisSigle}'  ";
            using (IDbConnection Conn = new DALDBBase().GetOpenConn())
            {
                IEnumerable<OrderSIndex> list = Conn.Query<OrderSIndex>(sqlQurey);
                if (list == null || list.Count() == 0)
                {
                    Conn.Execute(SqlInsert);
                    OutStr = $"{ThisSigle}{1.ToString().PadLeft(OutIndexLength, '0')}";
                }
                else
                {
                    Conn.Execute(SqlUpdate);
                    OrderSIndex oneModel = list.FirstOrDefault();
                    OutStr = $"{ThisSigle}{(oneModel.OrderIndexInSigle + 1).ToString().PadLeft(OutIndexLength, '0')}";
                }
            }
            return OutStr; 
        }

    }

使用方法:

csharp 复制代码
 string  innn =  new DAL.DALOrderSIndex().OutIndexStr("功能表数据",3,2);
相关推荐
光头闪亮亮4 小时前
Fyne ( go跨平台GUI )项目实战-项目开发必备基础知识(上)
android·sqlite·go
张人玉7 小时前
基于 Vue 3 + ECharts + Express + SQLite 构建的新能源汽车销量数据分析与可视化平台——新能源汽车销量数据分析系统
数据库·vue.js·sqlite·echarts
muddjsv1 天前
SQLite与MySQL/PostgreSQL本质区别:运行模型、并发、部署、权限全方位对比
mysql·postgresql·sqlite
张人玉2 天前
基于 Vue 3 + ECharts + Express + SQLite 的可视化大屏与业务管理系统——YOLOv8 高精度车辆行人检测与计数系统
数据库·vue.js·yolo·sqlite·echarts·express
张人玉4 天前
基于 Vue 3 + ECharts + Express + SQLite 构建的鞋类零售数据分析与毛利预测平台——基于深度学习的鞋类销售数据分析系统
vue.js·sqlite·echarts·express
Quincy_Freak4 天前
银河麒麟 aarch64 环境下轻量 SQLite 管理方案实践:SQLiteGo 落地体验
数据库·sqlite·sqlitego
NWU_白杨4 天前
三种常用的数据存储技术
数据库·redis·mysql·sqlite
初阳7855 天前
【Qt】SQLite——数据库介绍
数据库·qt·sqlite
Ai_easygo5 天前
MCP 协议实战:用 Claude Desktop 连本地 SQLite,5 分钟搭一个能查数据的 AI 助手
jvm·人工智能·sqlite
张人玉5 天前
C# WinForms——工厂管理系统(C# WinForms)
数据库·sqlite·c#·winform