添加新记录时,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