Visual C# 2005中如何为数据表建立自动编号字段

ZDNet软件频道 时间:2008-07-19 作者: |  我要评论()
本文关键词:自动编号 C#应用 C# Windows
由于不需要自行于自动编号字段中输入数据,因此建议您将自动编号字段的ReadOnly属性设置成true。

Visual C# 2005文件 IO与数据存取秘诀》节选

条款33
Visual C# 2005如何实现比较两个文件的内容是否完全相同
条款55
Visual C# 2005如何让ComboBox控件显示出多个数据源属性
条款56
C#中为什么我的ComboBox控件在数据绑定时加载速度很慢
条款63
Visual C# 2005如何连接至Access数据库
条款73
Visual C# 2005中如何为数据表建立自动编号字段
条款100
Visual C# 2005中如何使用数据命令执行Transact-SQL语句
条款134
C#中将DataSet的内容写成XML时如何格式化字段数据
条款152
C#中当用户尝试删除数据行时如何显示确认对话框
条款161
Visual C# 2005中如何以程控方式启动默认的浏览器
条款163
Visual C# 2005中如何产生与比较哈希值

在实际操作中,流水号的需求是非常大的。比方说,我们经常希望订单号码或是订单上各个产品的顺序编号自动依次递增而不需要人工输入,当您遇到此类需求时,千万不要一时冲动而想以程序代码来解决,因为只要使用自动编号字段,万事大吉!

ADO.NET并没有额外提供所谓的自动编号数据类型。欲使一个字段成为自动编号字段,您必须进行下列设置:

◆首先,字段的数据类型必须是Int16、Int32或Int64。如果字段的数据类型不是这三者,则会将DataType属性强制设置为Int32。

◆欲使一个字段成为自动编号字段,您必须将其AutoIncrement属性设置成true。

自动编号字段的内容其实都是整数,只不过每当您新增一笔数据行时,ADO.NET会自动去递增最后一笔数据行的自动编号字段的内容,并将递增后的结果填入新数据行的自动编号字段中,它不需要由您输入。

然而正由于是靠ADO.NET自动替您递增并填入,您必须使用AutoIncrementSeed属性来设置自动编号字段的种子(Seed),并使用AutoIncrementStep属性来设置自动编号字段的递增值(Increment),以便让ADO.NET有所遵循。所谓的“种子”,就是第一笔被新增至数据表之数据行的自动编号字段内容。至于“递增值”,则是每次固定要自前一笔数据行的自动编号字段内容递增多少。种子的默认值是0,递增值的默认值是1。

比方说,如果您将种子与递增值设置成1,则从第一笔开始的各笔数据行的自动编号字段内容将会是1、2、3、4……。又例如,如果您将种子与递增值分别设置成1与3,则从第一笔开始的各笔数据行的自动编号字段内容将会是1、4、7、10……。

◆由于不需要自行于自动编号字段中输入数据,因此建议您将自动编号字段的ReadOnly属性设置成true。

程序范例

图 5-8

图 5-8是程序范例CH5_DemoForm004.cs的执行画面,很显然,“章立民研究室”数据表的“员工号码”字段是一个种子为10000、递增值为5的自动编号字段。相关程序代码编写于窗体的Load事件处理函数中,摘要列示如下:

private void CH5_DemoForm004_Load(object sender, EventArgs e)
{

...

// 建立"员工号码"字段。
DataColumn colEmployeeId=
myTable.Columns.Add("员工号码", System.Type.GetType("System.Int32"));

 

// 定义"员工号码"字段的架构。
/****************************************/
// 设置"员工号码"字段是一个自动编号字段。
colEmployeeId.AutoIncrement=true;
 
// 将自动编号字段的种子设置成 10000。
colEmployeeId.AutoIncrementSeed=10000;
 
// 将自动编号字段的递增值设置成 5。
colEmployeeId.AutoIncrementStep=5;
/****************************************/

...
}

自动编号

C#应用

C#

Windows


百度大联盟认证黄金会员Copyright© 1997- CNET Networks 版权所有。 ZDNet 是CNET Networks公司注册服务商标。
中华人民共和国电信与信息服务业务经营许可证编号:京ICP证010391号 京ICP备09041801号-159
京公网安备:1101082134