[c#]代码库
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
sql语句:
/****** 对象: Table [dbo].[yg_SequenceNumber] 脚本日期: 11/12/2010 11:01:35 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
SET ANSI_PADDING ON
GO
CREATE TABLE [dbo].[yg_SequenceNumber](
[AutoID] [int] IDENTITY(1,1) NOT NULL,
[snID] [uniqueidentifier] NULL,
[SNType] [int] NULL,
[SNKey] [varchar](200) COLLATE Chinese_PRC_CI_AS NULL,
[SN] [int] NULL,
[UpdateDate] [datetime] NULL,
[EmployeeID] [uniqueidentifier] NULL,
[AddDate] [smalldatetime] NULL,
[Flag] [int] NULL CONSTRAINT [DF_yg_SequenceNumber_Flag] DEFAULT ((1))
) ON [PRIMARY]
GO
SET ANSI_PADDING OFF
GO
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'
GO
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'
GO
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'
GO
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'
GO
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'
GO
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'
GO
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'
GO
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'
GO
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'
public static string GetGenerateNumber(string snkey, int snType)
{
try
{
string strSql = @"if exists(select 1 from GS_SequenceNumber with(xlock) where SNType = @SNType and SNKey = @SNKey)
begin
update GS_SequenceNumber set SN = SN + 1, UpdateDate = @UpdateDate where SNType = @SNType and SNKey = @SNKey
select SN from GS_SequenceNumber where SNType = @SNType and SNKey = @SNKey
end
else
begin
insert into GS_SequenceNumber(snID, SNType, SNKey, UpdateDate, SN) values(@snID, @SNType, @SNKey, @UpdateDate,@SN)
select 1
end";
SqlParameter[] parameters = {
new SqlParameter("@snID", SqlDbType.UniqueIdentifier,16),
new SqlParameter("@SNKey", SqlDbType.VarChar,200),
new SqlParameter("@SN", SqlDbType.Int,4),
new SqlParameter("@UpdateDate", SqlDbType.DateTime),
new SqlParameter("@SNType", SqlDbType.Int,4)};
parameters[0].Value = Guid.NewGuid();
parameters[1].Value = snkey;
parameters[2].Value = snType;
parameters[3].Value = DateTime.Now;
parameters[4].Value = snType;
object obj = DBHelper.GetSingle(strSql.ToString(), parameters);
return string.Format(snkey, obj);
}
catch (Exception ex)
{
return ex.Message;
}
}
调用:
protected static string PreNo()
{
string year = DateTime.Now.Year.ToString().Substring(2);
string month = DateTime.Now.Month.ToString().Length == 1 ? "0" + DateTime.Now.Month.ToString() : DateTime.Now.Month.ToString();
string number = "{0:00000000}";
return GenerateNumberBLL.GetGenerateNumber(year + month + number, 1);
}