Возвратите автоматически увеличенный идентификационный номер текущей вставленной строки в VB.Net из базы данных mysql - PullRequest
0 голосов
/ 18 июня 2019

Я использую VB.net, чтобы написать рецепт для базы данных MySQL.После того, как я вставил рецепт, мне нужно вернуть автоматически увеличенный идентификатор для этой строки.(Автоматически увеличенный идентификатор Имя столбца - RecipeID)

Я пробовал разные варианты этого вопроса: Возврат последнего идентификатора (IDENTITY) при вставке строки VB.NET MySQL

, нопродолжайте получать ошибки необработанного исключения.

Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

    Dim mytimestamp As String = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
    MysqlConn = New MySqlConnection
    MysqlConn.ConnectionString = "server=localhost;userid=root;password=Splash123;database=awsbdata"

    Dim reader As MySqlDataReader
    Dim jobnumber As String = EthernetIPforCLXCom1.Read("BC_BatchCode")
    Dim recipename As String = EthernetIPforCLXCom1.Read("Recipe_library[0].Name")
    Dim recipeid As String = EthernetIPforCLXCom1.Read("Recipe_library[0].Number")
    Dim perator As String = EthernetIPforCLXCom1.Read("BC_CurrentUser")
    Dim slurrypress As Decimal = EthernetIPforCLXCom1.Read("PT1343_Imp")
    Dim g1airpressure As Decimal = EthernetIPforCLXCom1.Read("PIT1022_Imp")
    Dim g2airpressure As Decimal = EthernetIPforCLXCom1.Read("PIT1023_Imp")
    Dim g3airpressure As Decimal = EthernetIPforCLXCom1.Read("PIT1024_Imp")
    Dim g4airpressure As Decimal = EthernetIPforCLXCom1.Read("PIT1025_Imp")
    Dim airflowcfm As Decimal = EthernetIPforCLXCom1.Read("FIT1042_Imp")
    Dim concentration As Decimal = EthernetIPforCLXCom1.Read("MC_AbrasiveConcentation")
    Dim tanklevel As Decimal = EthernetIPforCLXCom1.Read("LT1345_Imp")

    Try
        MysqlConn.Open()
        Dim query As String
        query = "insert into awsbdata.batchdata (RunTime,JobNumber,RecipeID,RecipeName,Operator,Concentration,G1AirPressure,G2AirPressure,G3AirPressure,G4AirPressure,AirFlow_CFM,SlurryPressure,TankLevel) values ('" & mytimestamp & "','" & jobnumber & "','" & recipeid & "','" & recipename & "','" & perator & "','" & concentration & "','" & g1airpressure & "','" & g2airpressure & "','" & g3airpressure & "','" & g4airpressure & "','" & airflowcfm & "','" & slurrypress & "','" & tanklevel & "')"
        COMMAND = New MySqlCommand(query, MysqlConn)
        reader = COMMAND.ExecuteReader

        MysqlConn.Close()

    Catch ex As MySqlException
        MessageBox.Show(ex.Message)
    Finally
        MysqlConn.Dispose()

    End Try
End Sub

Я либо получаю необработанное исключение, либо ошибка соединения не открыта

1 Ответ

0 голосов
/ 19 июня 2019
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick

    Dim mytimestamp As String = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")
    MysqlConn = New MySqlConnection
    MysqlConn.ConnectionString = "server=localhost;userid=root;password=Splash123;database=awsbdata"

    Dim reader As MySqlDataReader
    Dim jobnumber As String = EthernetIPforCLXCom1.Read("BC_BatchCode")
    Dim recipename As String = EthernetIPforCLXCom1.Read("Recipe_library[0].Name")
    Dim recipeid As String = EthernetIPforCLXCom1.Read("Recipe_library[0].Number")
    Dim perator As String = EthernetIPforCLXCom1.Read("BC_CurrentUser")
    Dim slurrypress As Decimal = EthernetIPforCLXCom1.Read("PT1343_Imp")
    Dim g1airpressure As Decimal = EthernetIPforCLXCom1.Read("PIT1022_Imp")
    Dim g2airpressure As Decimal = EthernetIPforCLXCom1.Read("PIT1023_Imp")
    Dim g3airpressure As Decimal = EthernetIPforCLXCom1.Read("PIT1024_Imp")
    Dim g4airpressure As Decimal = EthernetIPforCLXCom1.Read("PIT1025_Imp")
    Dim airflowcfm As Decimal = EthernetIPforCLXCom1.Read("FIT1042_Imp")
    Dim concentration As Decimal = EthernetIPforCLXCom1.Read("MC_AbrasiveConcentation")
    Dim tanklevel As Decimal = EthernetIPforCLXCom1.Read("LT1345_Imp")

    Try
        MysqlConn.Open()
        Dim query As String
        query = "insert into awsbdata.batchdata (RunTime,JobNumber,RecipeID,RecipeName,Operator,Concentration,G1AirPressure,G2AirPressure,G3AirPressure,G4AirPressure,AirFlow_CFM,SlurryPressure,TankLevel) values ('" & mytimestamp & "','" & jobnumber & "','" & recipeid & "','" & recipename & "','" & perator & "','" & concentration & "','" & g1airpressure & "','" & g2airpressure & "','" & g3airpressure & "','" & g4airpressure & "','" & airflowcfm & "','" & slurrypress & "','" & tanklevel & "')"
        COMMAND = New MySqlCommand(query, MysqlConn)
        reader = COMMAND.ExecuteReader

        MysqlConn.Close()

    Catch ex As MySqlException
        MessageBox.Show(ex.Message)
    Finally
        MysqlConn.Dispose()

    End Try

    Try
        MysqlConn.Open()
        COMMAND.CommandText = "SELECT Last_insert_id()"
        Dim lastID = COMMAND.ExecuteScalar()
        MsgBox(lastID)

        MysqlConn.Close()

    Catch ex As MySqlException
        MessageBox.Show(ex.Message)
    Finally
        MysqlConn.Dispose()

    End Try

End Sub
...