首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > VB Dotnet >

添加新记录时,ID字段数字自动+1如何做

2012-01-14 
添加新记录时,ID字段数字自动+1怎么做?数据库中有ID字段,INT,现在要每次添加新记录时候,ID自段自动+1,要怎

添加新记录时,ID字段数字自动+1怎么做?
数据库中有ID字段,INT,现在要每次添加新记录时候,ID自段自动+1,要怎么实现?下面是我代码:
  Public   Overrides   Sub   SaveForAdd2()

                Dim   drData   As   DataRow   =   DataSet11.Tables( "申请表 ").NewRow()
                Try
                        drData( "id ")   =   TextBox36.Text
                        drData( "申请车间 ")   =   TextBox30.Text()
                        drData( "申请班组 ")   =   TextBox31.Text()
                        drData( "申请人 ")   =   TextBox33.Text()
                        drData( "科目负责人 ")   =   TextBox34.Text()
                        drData( "申请日期 ")   =   DateTimePicker1.Value.ToString( "yyyy-MM-dd ")
                        drData( "名称 ")   =   TextBox35.Text()
                        drData( "单价 ")   =   TextBox36.Text()
                        drData( "数量 ")   =   TextBox37.Text()
                        drData( "合计 ")   =   TextBox38.Text()
                        drData( "备注 ")   =   TextBox39.Text()
                        drData( "用途 ")   =   TextBox40.Text()

                Catch   ex   As   Exception
                        MessageBox.Show( "数据格式不正确! ")
                        Exit   Sub
                End   Try

                Try
                        DataSet11.Tables( "申请表 ").Rows.Add(drData)
                        If   Me.DataSet11.HasChanges   =   True   Then
                                SqlDataAdapter1.Update(DataSet11)
                        End   If
                Catch   ex   As   Exception
                        MessageBox.Show( "数据添加失败! ")
                End   Try
        End   Sub

[解决办法]
两个办法:
一、先在数据库中查最大ID回来,然后再在此基础上加1。
二、在数据库中将ID字段设成自动增长字段。


[解决办法]
数据库中定义IDENTITY列

[解决办法]
定义数据库:ID自动增长:
比如:
create table #temp
(
id int identity(1,1),
value varchar(10)
)
[解决办法]
select max(id) from 表
[解决办法]
你在数据库中把ID字段的类型改为自动增长就行了,你点击ID字段的数据类型,会出现下拉框,你再直接选中
[解决办法]
DataSet11.Tables( "申请表 ").Select( " ", "ID Desc ").GetValue(0).Item( "ID ") + 1
[解决办法]
回楼上,应该是写一些简单的表达式来缩小寻找ROW的范围,就像写SQL语句后面的where语句吧。比如DataSet11.Tables( "申请表 ").Select( "ID = '111 ' And 名称 = 'AAA ' "),找出来的应该也是行集。
[解决办法]
这是我们刚学的一个实践项目,ID是C后面加三位数字。你可以按照下面的模式来形成你需要的代码,希望对你有帮助。此表按ID号排列。
Dim custid, custidval As String
dt = DataSet11.Tables( "CustomerTracking ") '将数据集中的表赋给dt
len = dt.Rows.Count - 1 'dt.row.count表示dt表的行数
dr = dt.Rows(len) '将dt表的最后一行给dr
custid = dr( "CustID ") '将dr中的“CustID”给custid
custidval = Mid(custid, 2, 3) '去后三位数字
ctr = CInt(custidval) '转换成数值剔除前边的0
If ctr > = 1 And ctr < 9 Then
ctr = ctr + 1
txtcustid.Text = "C00 " & ctr
ElseIf ctr > = 9 And ctr < 99 Then
ctr = ctr + 1
txtcustid.Text = "C0 " & ctr
ElseIf ctr > = 99 And ctr < 999 Then
ctr = ctr + 1
txtcustid.Text = "C " & ctr
End If

热点排行