技术开发 频道

如何为数据表建立自动编号字段


【IT168技术文档】

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

  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。

  程序范例

  程序范例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/****************************************/ }
0
相关文章