自动生成流水线号_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 1386 | 回复: 0   主题: 自动生成流水线号        下一篇 
huan.liu
注册用户
等级:新兵
经验:72
发帖:58
精华:0
注册:2011-11-23
状态:离线
发送短消息息给huan.liu 加好友    发送短消息息给huan.liu 发消息
发表于: IP:您无权察看 2015-6-23 10:13:21 | [全部帖] [楼主帖] 楼主

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


--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论