当前位置: 首页 > news >正文

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

1数据库创建:

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数据:

 /// <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操作

 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://3ThisSigle = 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; }}

使用方法:

 string  innn =  new DAL.DALOrderSIndex().OutIndexStr("功能表数据",3,2);
http://www.lryc.cn/news/150698.html

相关文章:

  • 前端实现在线预览文件
  • 海外有哪些流行的支付方式?
  • 服务器数据恢复-重组RAID导致RAID6数据丢失的数据恢复案例
  • Redis数据库持久化---RDB(Redis DataBase)概念与实操
  • 分部署存储Ceph
  • 项目:点餐系统3mysql知识回顾MySQL客户端
  • docker命令学习
  • 【STM32教程】第二章 通用输入输出口GPIO
  • 2023.9 - java - ArrayList
  • 记1次前端性能优化之CPU使用率
  • 记一次postgres导致cpu100%
  • 详谈SpringBoot启动项目后执行自定义方法的方式
  • KubeAdmin方式搭建K8S(1.26.0)
  • 代码随想录打卡—day57—【编辑距离】— 9.2+9.3 编辑距离系列
  • Blender界面学习03 原点、鼠标所在位置的缩放与旋转
  • 指针结构体题
  • 【力扣每日一题02】数组篇--删除有序数组中的重复项
  • Vue在表格中拿到该行信息的方式(作用域插槽-#default-scope-解决按钮与行点击的顺序问题)
  • OJ练习第158题——单词拆分 II
  • ArcGIS地块面积分割调整工具插件
  • 基于Matlab实现多个图像增强案例(附上源码+数据集)
  • 计算机网络 概述部分
  • 使用DOSBOX运行TurboC2,TC2使用graphics库绘图
  • OpenCV(二):认识Mat容器
  • springboot整合Excel填充数据
  • c语言技术面试记录 ---- 纲要、题目、分析及给分标准
  • 前端进阶之——模块化
  • Python爬虫抓取表情包制作个性化聊天机器人
  • 使用pip命令安装库,装到其他环境中的问题。
  • 如何使用CSS实现一个带有动画效果的进度条?