自动生成流水线号

网友投稿 266 2022-06-18


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,)


版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:SQL语句优化技术分析(sql性能优化方法)
下一篇:推荐五款最常见的云数据库(云数据库是什么样的数据库)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~