[C#] 生成流水号 →→→→→进入此内容的聊天室

来自 , 2019-08-01, 写在 C#, 查看 129 次.
URL http://www.code666.cn/view/17b3c706
  1. 1
  2. 2
  3. 3
  4. 4
  5. 5
  6. 6
  7. 7
  8. 8
  9. 9
  10. 10
  11. 11
  12. 12
  13. 13
  14. 14
  15. 15
  16. 16
  17. 17
  18. 18
  19. 19
  20. 20
  21. 21
  22. 22
  23. 23
  24. 24
  25. 25
  26. 26
  27. 27
  28. 28
  29. 29
  30. 30
  31. 31
  32. 32
  33. 33
  34. 34
  35. 35
  36. 36
  37. 37
  38. 38
  39. 39
  40. 40
  41. 41
  42. 42
  43. 43
  44. 44
  45. 45
  46. 46
  47. 47
  48. 48
  49. 49
  50. 50
  51. 51
  52. 52
  53. 53
  54. 54
  55. 55
  56. 56
  57. 57
  58. 58
  59. 59
  60. 60
  61. 61
  62. 62
  63. 63
  64. 64
  65. 65
  66. 66
  67. 67
  68. 68
  69. 69
  70. 70
  71. 71
  72. 72
  73. 73
  74. 74
  75. 75
  76. 76
  77. 77
  78. 78
  79. 79
  80. 80
  81. 81
  82. 82
  83. 83
  84. 84
  85. 85
  86. sql语句:
  87. /****** 对象:  Table [dbo].[yg_SequenceNumber]    脚本日期: 11/12/2010 11:01:35 ******/
  88. SET ANSI_NULLS ON
  89. GO
  90. SET QUOTED_IDENTIFIER ON
  91. GO
  92. SET ANSI_PADDING ON
  93. GO
  94. CREATE TABLE [dbo].[yg_SequenceNumber](
  95.     [AutoID] [int] IDENTITY(1,1) NOT NULL,
  96.     [snID] [uniqueidentifier] NULL,
  97.     [SNType] [int] NULL,
  98.     [SNKey] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
  99.     [SN] [int] NULL,
  100.     [UpdateDate] [datetime] NULL,
  101.     [EmployeeID] [uniqueidentifier] NULL,
  102.     [AddDate] [smalldatetime] NULL,
  103.     [Flag] [int] NULL CONSTRAINT [DF_yg_SequenceNumber_Flag]  DEFAULT ((1))
  104. ) ON [PRIMARY]
  105.  
  106. GO
  107. SET ANSI_PADDING OFF
  108. GO
  109. EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'自增序号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'yg_SequenceNumber', @level2type=N'COLUMN',@level2name=N'AutoID'
  110. GO
  111. EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'唯一标识id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'yg_SequenceNumber', @level2type=N'COLUMN',@level2name=N'snID'
  112. GO
  113. EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'序号类型' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'yg_SequenceNumber', @level2type=N'COLUMN',@level2name=N'SNType'
  114. GO
  115. EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'序号键值' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'yg_SequenceNumber', @level2type=N'COLUMN',@level2name=N'SNKey'
  116. GO
  117. EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'序号' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'yg_SequenceNumber', @level2type=N'COLUMN',@level2name=N'SN'
  118. GO
  119. EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'更新日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'yg_SequenceNumber', @level2type=N'COLUMN',@level2name=N'UpdateDate'
  120. GO
  121. EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'添加者id' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'yg_SequenceNumber', @level2type=N'COLUMN',@level2name=N'EmployeeID'
  122. GO
  123. EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'添加日期' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'yg_SequenceNumber', @level2type=N'COLUMN',@level2name=N'AddDate'
  124. GO
  125. EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'状态标示 ,比如锁定、删除' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'yg_SequenceNumber', @level2type=N'COLUMN',@level2name=N'Flag'
  126.  
  127.  
  128. public static string GetGenerateNumber(string snkey, int snType)
  129.             {
  130.                 try
  131.                 {
  132.                     string strSql = @"if exists(select 1 from GS_SequenceNumber with(xlock) where SNType = @SNType and SNKey = @SNKey)
  133.                            begin
  134.                            update GS_SequenceNumber set SN = SN + 1, UpdateDate = @UpdateDate where SNType = @SNType and SNKey = @SNKey
  135.                            select SN from GS_SequenceNumber where SNType = @SNType and SNKey = @SNKey
  136.                            end
  137.                            else
  138.                            begin
  139.                            insert into GS_SequenceNumber(snID, SNType, SNKey, UpdateDate, SN) values(@snID, @SNType, @SNKey, @UpdateDate,@SN)
  140.                            select 1
  141.                            end";
  142.                     SqlParameter[] parameters = {
  143.                     new SqlParameter("@snID", SqlDbType.UniqueIdentifier,16),
  144.                     new SqlParameter("@SNKey", SqlDbType.VarChar,200),
  145.                     new SqlParameter("@SN", SqlDbType.Int,4),
  146.                     new SqlParameter("@UpdateDate", SqlDbType.DateTime),
  147.                     new SqlParameter("@SNType", SqlDbType.Int,4)};
  148.                     parameters[0].Value = Guid.NewGuid();
  149.                     parameters[1].Value = snkey;
  150.                     parameters[2].Value = snType;
  151.                     parameters[3].Value = DateTime.Now;
  152.                     parameters[4].Value = snType;
  153.  
  154.                     object obj = DBHelper.GetSingle(strSql.ToString(), parameters);
  155.                     return string.Format(snkey, obj);
  156.                 }
  157.                 catch (Exception ex)
  158.                 {
  159.                     return ex.Message;
  160.                 }
  161.             }
  162.  
  163. 调用:
  164.  protected static string PreNo()
  165.         {
  166.             string year = DateTime.Now.Year.ToString().Substring(2);
  167.             string month = DateTime.Now.Month.ToString().Length == 1 ? "0" + DateTime.Now.Month.ToString() : DateTime.Now.Month.ToString();
  168.             string number = "{0:00000000}";
  169.             return GenerateNumberBLL.GetGenerateNumber(year + month + number, 1);
  170.         }

回复 "生成流水号"

这儿你可以回复上面这条便签

captcha