【发布时间】:2014-06-29 07:01:16
【问题描述】:
我在Access 上有一个数据库,我想插入到 2 个表中
- ReportReq
- req_sysino
我想获取主键的最后一个值(自动编号)并将其插入到 req_sysino ,我被这段代码卡住了,我不知道如何处理
Private Function InsertSysInvToDB(intSysInv As Integer) As Integer
Dim strSQLStatement As String = String.Empty
Dim intNoAffectedRows As Integer = 0
Dim con As New OleDb.OleDbConnection("PROVIDER = Microsoft.ace.OLEDB.12.0; Data Source = C:\Users\felmbanF\Documents\Visual Studio 2012\Projects\WebApplication3\WebApplication3\App_Data\ReportReq.accdb")
Dim cmd As OleDb.OleDbCommand
Dim reqnum As String = "Select @@REQ_NUM from ReportReq"
strSQLStatement = "INSERT INTO req_sysino (Req_num, sysinvo_ID)" +
" VALUES (" & reqnum & "','" & intSysInv & ")"
cmd = New OleDb.OleDbCommand(strSQLStatement, con)
cmd.Connection.Open()
intNoAffectedRows = cmd.ExecuteNonQuery()
cmd.Connection.Close()
Return intNoAffectedRows
End Function
这是我应该生成自动编号的插入代码
Dim dbProvider = "PROVIDER = Microsoft.ace.OLEDB.12.0;"
Dim dbSource = " Data Source = C:\Users\felmbanF\Documents\Visual Studio 2012\Projects\WebApplication3\WebApplication3\App_Data\ReportReq.accdb"
Dim sql = "INSERT INTO ReportReq (Emp_EmpID, Req_Date,Req_expecDate,Req_repnum, Req_name, Req_Descrip, Req_columns, Req_Filtes, Req_Prompts)" +
"VALUES (@reqNUM,@reqName,@reqDescrip,@reqcolumns,@reqfilters,@reqprompts)"
Using con = New OleDb.OleDbConnection(dbProvider & dbSource)
Using cmd = New OleDb.OleDbCommand(sql, con)
con.Open()
cmd.Parameters.AddWithValue("@EmpID", txtEmpID.Text)
cmd.Parameters.AddWithValue("@reqDate", DateTime.Today)
cmd.Parameters.AddWithValue("@reqExpecDate", DateTime.Parse(txtbxExpecDate.Text).ToShortDateString())
cmd.Parameters.AddWithValue("@reqNUM", txtRep_NUM.Text)
cmd.Parameters.AddWithValue("@reqName", txtRep_Name.Text)
cmd.Parameters.AddWithValue("@reqDescrip", txtbxRep_Desc.Text)
cmd.Parameters.AddWithValue("@reqcolumns", txtbxColReq.Text)
cmd.Parameters.AddWithValue("@reqfilters", txtbxFilReq.Text)
cmd.Parameters.AddWithValue("@reqprompts", txtbxPromReq.Text)
cmd.ExecuteNonQuery()
End Using
End Using
【问题讨论】:
-
请发布创建最后生成的主键值的 INSERT 语句。
-
您需要先执行命令创建
reqnum,然后再尝试将其插入到另一个表中。