自动生成流水线号

2018-07-13 08:50:29来源:编程学习网 阅读 ()

新老客户大回馈,云服务器低至5折

1、使用C#自动生成四位凭证号

//如果没有数据则返回结果为0,如果有则取出最大的id值
DataTable dtPnum =sqlhelper.ExecuteDataTable("select case when max(a_id) is null then'0' end as id FROM tb_account_base");
//准备插入的id为刚刚返回的id+1
int pnum =Convert.ToInt32(dtPnum.Rows[0][0]) + 1;
//从右向左截取4位字符串,显示至页面TextBox
string str = "0000" +pnum.ToString();
labPnum.Text =str.Substring(str.Length - 4, 4);
 
*从右向左截取字符串的一般写法
str.Substring(str.Length -i, i);
str.Length -i:从倒数第几位开始截取,i:截取几个字符
 
2、在SQL Server中自动生成

--创建函数实现数字部分的自增
CREATE FUNCTION f_NextXH()
RETURNS nvarchar(12)
AS
BEGIN
RETURN(SELECT 'XH'+CONVERT(varchar(4),year(GETDATE()))+RIGHT(1000001+ISNULL(RIGHT(MAX(StudentGuid),6),0),6) FROM StudentInfo WITH(XLOCK,PAGLOCK))
END
GO

--在表中应用函数
CREATE TABLE StudentInfo(
StudentGuid nvarchar(50) PRIMARY KEY DEFAULT dbo.f_NextXH(),
StudentName nvarchar(50) NOT NULL,
Sex nvarchar(50) NOT NULL,
[Identity] nvarchar(50) NOT NULL,
Introduction nvarchar(50) NOT NULL,
)

再例如:

--创建函数实现数字部分的自增
CREATE FUNCTION f_NextCJ()
RETURNS nvarchar(15)
AS
BEGIN
RETURN(SELECT 'CJ'+CONVERT(varchar(100), GETDATE(), 112)+RIGHT(10001+ISNULL(RIGHT(MAX(ScoreGuid),5),0),5) FROM ScoreInfo WITH(XLOCK,PAGLOCK))
END
GO

--在表中应用函数
CREATE TABLE [ScoreInfo](
ScoreGuid nvarchar(50) PRIMARY KEY DEFAULT dbo.f_NextCJ(),
StudentGuid nvarchar(50) NOT NULL,
[Year] nvarchar(50) NOT NULL,
[Semester] nvarchar(50) NOT NULL,
[Subject] nvarchar(50) NOT NULL,
[Score] numeric(8, 2) NOT NULL,
[ScoreTime] datetime NOT NULL,)

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:比较全面的MySQL优化参考

下一篇:sql server抓取表结构的语句

热门词条
热门标签