1

自動番号からカスタム自動番号を取得しようとしています。しかし、データベーステーブルにデータがある場合はスムーズに実行され、データベーステーブルにデータがない場合はエラーが発生します。

Private Sub CustomNo()
    Dim comm As OleDbCommand
    Dim commStr As String = "SELECT MAX(ID) FROM Table"
    Dim RD As OleDbDataReader
    Dim i As Integer

    conn = New OleDbConnection(connStr)
    conn.Open()

    comm = New OleDbCommand(commStr, conn)
    RD = comm.ExecuteReader

    While RD.Read
        If Not IsDBNull(RD.GetInt32(0)) = False Then
            i = RD.GetInt32(0)
            CustN = "ABC-" & i + 1
            Custom_NoTextBox.Text = CustN
            Exit While
        Else

            i = 0
            CustN = "ABC-" & i + 1
            Custom_NoTextBox.Text = CustN

        End If
    End While

    conn.Close()
End Sub
4

2 に答える 2

0
Private Sub CustomNo()

    Dim CountCom As OleDbCommand
    Dim CountComStr As String = "SELECT COUNT(*) FROM Table"
    Dim j As Integer
    Dim i As Integer

    conn = New OleDbConnection(connStr)
    conn.Open()

    CountCom = New OleDbCommand(CountComStr, conn)
    j = CountCom.ExecuteScalar()

    If j = 0 Then
        i = 1
    Else
        Dim comm As OleDbCommand
        Dim commStr As String = "SELECT MAX (ID) FROM Table"
        Dim RD As OleDbDataReader

        comm = New OleDbCommand(commStr, conn)
        RD = comm.ExecuteReader
        While RD.Read
            i = RD.GetInt32(0)
        End While
        i = i + 1
    End If

    Custom_NoTextBox.Text = "ABC-" & i

    conn.Close()
End Sub
于 2014-12-23T05:04:36.353 に答える
-1
Friend Function cmd_excuteScalar()    
    conncet()
    cmd = New SqlCommand(sql, cn)       
    Return cmd.ExecuteScala        
End Function

Private Sub get_autonumber_normal()  
    sql = "select max(product_id) from product_tb " 
    Try
        txt_productcode.Text = cmd_excuteScalar() + 1 excuteScalar 
    Catch ex As Exception                                 
        txt_productcode.Text = "1"
    End Try
End Sub

Private Sub frm_Number_Load(sender As System.Object, e As EventArgs)
    Handles MyBase.Load
    get_autonumber_normal()
    refresh_data_table()
End Sub

これを試して

于 2018-05-14T10:30:15.200 に答える