Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 获取主键值(自动编号)VB_Vb.net_Ms Access - Fatal编程技术网

Vb.net 获取主键值(自动编号)VB

Vb.net 获取主键值(自动编号)VB,vb.net,ms-access,Vb.net,Ms Access,我在Access上有一个数据库,我想插入到两个表中 ReportReq req\u sysino 我想获取主键的最后一个值(自动编号),并将其插入req\u sysino ,我被这个代码卡住了,我不知道如何处理 Private Function InsertSysInvToDB(intSysInv As Integer) As Integer Dim strSQLStatement As String = String.Empty Dim intNoAffectedRows

我在
Access
上有一个数据库,我想插入到两个表中

  • ReportReq
  • req\u sysino
我想获取主键的最后一个值(自动编号),并将其插入req\u 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

ExecuteNonQuery()
INSERT-INTO-ReportReq…语句之后,您需要立即运行

选择@@IDENTITY
查询并检索其结果,如下所示

cmd.ExecuteNonQuery()'您要运行INSERT INTO ReportReq的现有语句
cmd.CommandText=“选择@@IDENTITY”
Dim NEWATONUMBERVALUE As Integer=cmd.ExecuteScalar()

请发布创建上次生成的主键值的INSERT语句。在尝试将其插入另一个表之前,您需要执行创建
reqnum
的命令。该语句可能重复,但如何在函数中使用它。如果您注意到第一个代码是插入到statment@Flimboo如果两个函数都在同一个模块中,则您可以在模块级别将newAutoNumberValue设置为Dim