好贷网好贷款

各位高手我想求助一个问题,关于自动生成编号的问题,谢谢帮忙解答。 20feixianxxx]

发布时间:2016-12-3 8:21:39 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"各位高手我想求助一个问题,关于自动生成编号的问题,谢谢帮忙解答。 20feixianxxx]",主要涉及到各位高手我想求助一个问题,关于自动生成编号的问题,谢谢帮忙解答。 20feixianxxx]方面的内容,对于各位高手我想求助一个问题,关于自动生成编号的问题,谢谢帮忙解答。 20feixianxxx]感兴趣的同学可以参考一下。

我编写了一个可以自动生成订单号的小程序,可是总也实现不了,希望高手能给以指点,谢谢。 Private Sub cmddj_Click() '登记 txt.Width = MS1.CellWidth: txt.Height = MS1.CellHeight txt.Left = MS1.CellLeft + MS1.Left: txt.Top = MS1.CellTop + MS1.Top MS1.Enabled = True Dim lsph As Integer rs2.Open "select * from 销售信息表 order by 订单号 ", gconn, adOpenKeyset, adLockBatchOptimistic If rs2.RecordCount > 0 Then If Not rs2.EOF Then rs2.MoveLast  If rs2.Fields("订单号") <> "" Then   lsph = Val(Right(Trim(rs2.Fields("订单号")), 4)) + 1   txt1.Text = dd.Text & "xs" & Format(lsph, "0000")    End If   Else    txt1.Text = dd.Text & "xs" & "0001"  End If    rs2.Close    txt2.Enabled = True: cmdsave.Enabled = True  cmdcancle.Enabled = True: cmddj.Enabled = False  txt.Enabled = True:    For i = 1 To 100  For j = 1 To 8      MS1.TextMatrix(i, j) = ""  Next j  Next i  txt2.Text = "": txt3.Text = "0": txt4.Text = "0": txt5.Text = "0"  txt6.Text = "0": txt7.Text = "0"  txt2.SetFocus End Sub

不懂,学习来了,帮顶吧 你能给我一分就不错了,谢谢!

你这是在VB中判断,这样有点惨,最好还是在数据库端生成,然后返回给客户端 Select RIGHT('000'+Cast(ISNULL(MAX(CAST(RIGHT(订单号,4) AS Int),0)+1 AS VarChar(4)),4)  From 销售信息表

Id, FormatId, F1 ,F2 Id序号我设了自动加一,FormatId我想他也象这样"SL000001", 当Insert时就加1,FormatId我想他也能自动加一"SL000001","SL000002"... 能用一条sql什么办法实现.最好不要用中间表。有什么好方法? 谢谢! create table #test (id int identity, FormatId as 'SL'+right(10000000+id,6), F1 varchar(50)) go insert #test(F1) select '1' union all select '2' select * from #test drop table #test /* id          FormatId       F1    ----------- -------------- ----- 1           SL000001       1 2           SL000002       2 (所影响的行数为 2 行) */

使用数据库生成比较好 --以下代码生成的编号长度为12,前6位为日期信息,格式为YYMMDD,后6位为流水号。 --创建得到当前日期的视图 CREATE VIEW v_GetDate AS SELECT dt=CONVERT(CHAR(6),GETDATE(),12) GO --得到新编号的函数 CREATE FUNCTION f_NextBH() RETURNS char(12) AS BEGIN DECLARE @dt CHAR(6) SELECT @dt=dt FROM v_GetDate RETURN( SELECT @dt+RIGHT(1000001+ISNULL(RIGHT(MAX(BH),6),0),6)  FROM tb WITH(XLOCK,PAGLOCK) WHERE BH like @dt+'%') END GO --在表中应用函数 CREATE TABLE tb( BH char(12) PRIMARY KEY DEFAULT dbo.f_NextBH(), col int) --插入资料 INSERT tb(col) VALUES(1) INSERT tb(col) VALUES(2) INSERT tb(col) VALUES(3) DELETE tb WHERE col=3 INSERT tb(col) VALUES(4) INSERT tb(BH,col) VALUES(dbo.f_NextBH(),14) --显示结果 SELECT * FROM tb /*--结果 BH           col  ------------------- -----------  050405000001  1 050405000002  2 050405000003  4 050405000004  14 --*/

/*===================================================    功能:格式化字符串 ,如输入01 自动生成 0000001     设计:weiguohao    日期:2006-03-11   ===================================================*/ CREATE FUNCTION FORMAT_STR (@strX Nvarchar(20),@FormatLength INT) RETURNS NVARCHAR(100) AS   BEGIN  DECLARE @Return NVARCHAR(100) DECLARE @i INT     IF LEN(@strX)>[email protected] SET @[email protected]     ELSE         BEGIN SET @Return='' SET @i=1 WHILE @i<=((@FormatLength-LEN(@strX))/10 +(Case  When (@FormatLength-LEN(@strX))%10>0  Then 1 Else 0 End))      BEGIN SET @[email protected]+CAST(REPLACE(POWER(10,9),'1','0')  AS NVARCHAR(10)) SET @[email protected]+1      END SET @Return=LEFT(@Return,@FormatLength-LEN(@strX)) [email protected]         END RETURN @Return END

上一篇:远程数据库访问 50rrewwe]
下一篇:在sql2005数据库备份维护计划过程中,有个过程可以实现保留几天的备份,但却实现不了.请高手指点. 80cywarson]

相关文章

相关评论