三位数自动递增编号函数_用C#写一个自增序号的程序,要求是三位数如001,002,如果新添数据编号重复,则自动递增...

通过创建一个存储序号的table和一个procedure,实现了三位数的自增编号功能。table包含CODE1和CODE2字段,用于区分不同项目的序号。procedure根据输入的CODE1获取当前最大序号并加1,确保编号唯一性。当新添数据编号重复时,自动递增。
摘要由CSDN通过智能技术生成

给个我在用的方案给你吧,我用procedure+table实现

1.首先是建立table存储序号,有两个字段CODE1,CODE2

CODE1是固定码,因为你可能很多项目要用到自增型

CODE2就是已用掉的序号

这样用code1做区别,比如项目1我可以用A01

或者你可以用更灵活点,用项目名称+年月,例:OT201207,这样你的序号可以做到每个月从1又开始重新计数

表脚本如下

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[tblGetNumber]') and OBJECTPROPERTY(id, N'IsUserTable') = 1)

drop table [dbo].[tblGetNumber]

GO

CREATE TABLE [dbo].[tblGetNumber] (

[Code1] [varchar] (50) COLLATE Chinese_Taiwan_Stroke_CI_AS NOT NULL ,

[Code2] [int] NOT NULL

) ON [PRIMARY]

GO

CREATE INDEX [IDX_CODE1] ON [dbo].[tblGetNumber]([Code1]) ON [PRIMARY]

GO

2.

2. 其次建立procedure,实现取号作业,取成功则code2+1,

procedure 脚本如下

CREATE PROCEDURE [dbo].[sp_GetNum

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,这里提供一个简单的C51程序,利用ADC调节LCD显示的四位数字逐渐递增。 ```c #include <reg52.h> #include <intrins.h> #define LCD_DATA_PORT P0 // LCD数据口 sbit LCD_RS = P2^0; // LCD_RS sbit LCD_RW = P2^1; // LCD_RW sbit LCD_EN = P2^2; // LCD_EN unsigned int ADC_value; // ADC采集的数值 unsigned int num = 0; // 要显示的数字 // ADC初始化函数 void ADC_Init() { ADC_CONTR = 0x80; // 开启ADC电源 P1ASF = 0x01; // P1.0作为ADC输入口 ADC_RES = 0; // 清除结果寄存器 ADC_RESL = 0; // 清除结果寄存器低8位 } // ADC采样函数 unsigned int GetADCResult() { ADC_CONTR = 0x88; // ADC转换开始 _nop_(); _nop_(); _nop_(); _nop_(); while (!(ADC_CONTR & 0x10)); // 等待ADC转换完成 ADC_CONTR &= 0xEF; // 清除ADC转换完成标志 return ADC_RES * 256 + ADC_RESL; // 返回ADC采集到的数值 } // LCD命令函数 void LCD_WriteCmd(unsigned char cmd) { LCD_RS = 0; LCD_RW = 0; LCD_DATA_PORT = cmd; LCD_EN = 1; _nop_(); _nop_(); LCD_EN = 0; } // LCD数据函数 void LCD_WriteData(unsigned char dat) { LCD_RS = 1; LCD_RW = 0; LCD_DATA_PORT = dat; LCD_EN = 1; _nop_(); _nop_(); LCD_EN = 0; } // LCD初始化函数 void LCD_Init() { LCD_WriteCmd(0x38); // 8位数据口,2行显示,5x7点阵 LCD_WriteCmd(0x0C); // 显示开,光标关,闪烁关 LCD_WriteCmd(0x06); // 光标移动,文字不动 LCD_WriteCmd(0x01); // 清屏 } // 显示数字函数 void DisplayNum(unsigned int num) { unsigned char i; unsigned char str[4] = {0, 0, 0, 0}; str[0] = num / 1000; str[1] = (num % 1000) / 100; str[2] = (num % 100) / 10; str[3] = num % 10; for (i = 0; i < 4; i++) { LCD_WriteData(str[i] + '0'); } } int main() { ADC_Init(); // 初始化ADC LCD_Init(); // 初始化LCD while (1) { ADC_value = GetADCResult(); // 获取ADC采集到的数值 num = ADC_value / 4; // 将采集到的数值转换为0~9999范围内的数字 DisplayNum(num); // 显示数字 } return 0; } ``` 这个程序的主要思路是:不断读取ADC采集到的数值,并将其转换为0~9999范围内的数字,然后在LCD上显示出来。通过调节ADC输入的电压,可以实现LCD上数字的逐渐递增或递减。需要注意的是,这个程序只是一个简单的示例,实际应用时需要根据具体要求进行修改和完善。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值