VB.net如何验证单元格DataGridView

时间:2017-04-22 06:59:06

标签: vb.net datagridview

嘿,我对我的datagridview发生了什么感到困惑。

所以我目前正在使用“购买表”。

我将用户输入数据直接输入到表中。问题是验证。首先尝试,我发誓,我做到了。

它逐一检查了我的所有细胞,列。说明了错误消息以及名称,价格等等。他们是空的。然后是下一行。

但是现在,当我输入ID并填写姓名时,我总是得到一个错误," ID为空"。

是因为系统直接检查并移动到下一行并跳过其余行?

任何人都可以提供帮助吗?

当我尝试在函数cekInput()上更改行变量时,全部为0 dgv.Item(0,0).Value,dgv.Item(1,0).Value,etc.etc

它正在工作,但只有一行。我希望系统检查下一行

Function cekInput() As Byte
    Dim row = dgv.RowCount - 1
    If dgv.Item(0, row).Value Is Nothing Then
        cekInput = 1
    ElseIf dgv.Item(1, row).Value Is Nothing Then
        cekInput = 2
    ElseIf dgv.Item(2, row).Value Is Nothing Then
        cekInput = 3
    ElseIf dgv.Item(3, row).Value Is Nothing Then
        cekInput = 4
    ElseIf dgv.Item(5, row).Value Is Nothing Then
        cekInput = 5
    Else
        cekInput = 0
    End If
End Function

我没有数据库问题..这就是为什么系统跳过我的验证?

Sub InsertPurchases()
    Dim cek As Byte = cekInput()
    Select Case cek
        Case 0
            Try
                Dim sql = "INSERT INTO pembelian (no_pmb,tgl_pmb,nm_supplier) VALUES ('" & NoPmb.Text & "','" & Format(Now, "dd/MM/yyyy") & "','');"
                cmd = New MySqlCommand(sql, conn)
                cmd.ExecuteNonQuery()

                For i = 0 To dgv.RowCount - 2
                    sql = "INSERT INTO detail_pmb (no_pmb,id_brg,nm_brg,harga_brg,qty_disc,total,qty_brg,sub_total) VALUES ('" & _
                      NoPmb.Text & "','" & dgv.Item(0, i).Value & "','" & dgv.Item(1, i).Value & "','" & dgv.Item(2, i).Value & "','" & dgv.Item(3, i).Value & "','" & dgv.Item(4, i).Value & "','" & dgv.Item(5, i).Value & "','" & dgv.Item(6, i).Value & "');"
                    cmd = New MySqlCommand(sql, conn)
                    cmd.ExecuteNonQuery()
                Next
                MsgBox("Data Pembelian Berhasil Dicatat", vbInformation, "Pesan")
                clr()
                dgv.Rows.Clear()
            Catch ex As Exception
                MsgBox("Data Pembelian Gagal Dicatat", vbCritical, "Error")
            Finally
                'conn.Close()
                AutoNoNota()
            End Try
            InactvItem(True)
        Case 1
            MsgBox("Kode Barang Harus Di-Isi", vbCritical, "Pesan")
        Case 2
            MsgBox("Nama Barang Harus Di-Isi", vbCritical, "Pesan")
        Case 3
            MsgBox("Harga Barang Harus Di-Isi", vbCritical, "Pesan")
        Case 4
            MsgBox("Jumlah Disc Harus Di-Isi", vbCritical, "Pesan")
        Case 5
            MsgBox("Jumlah Barang Harus Di-Isi", vbCritical, "Pesan")
    End Select
End Sub

0 个答案:

没有答案