【问题标题】:Search through the database using a combobox, if an item is in a database, prompt will appear使用组合框搜索数据库,如果项目在数据库中,将出现提示
【发布时间】:2014-03-12 15:29:20
【问题描述】:

大家好。

我正在制作一个 POS 和库存管理系统,但到目前为止我遇到了这个特定模块的问题。

将商品添加到采购订单列表时,如果商品已经在采购订单数据库中,系统会提示已经有待处理订单。我已经完成了提示,但是添加到数据库有点混乱。它根本没有做任何事情。当我删除 ds.hasrows 和 while dr.read 条件时,那里的代码有效。这是我的代码:

Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click

    Ceiling = CInt(txtCeiling.Text)
    TotalQuantity = CurrentItemQuantity + CInt(txtPurchaseQty.Text)

    If TotalQuantity > Ceiling Then
        MsgBox("Exceeds Ceiling Point.")
    Else

        sqlString = "SELECT PRODUCT_ID FROM posinventory.purchaseorder WHERE purchaseorder.PRODUCT_ID = '" & cboProductID.Text & "'"

        cmd = New MySqlCommand(sqlString, con)
        dr = cmd.ExecuteReader

        If dr.HasRows Then
            While dr.Read

                If CurrentItem = dr.Item("PRODUCT_ID") Then

                    MsgBox("Product has pending order.")
                    cboProductID.Focus()

                Else

                    sqlString = "INSERT INTO posinventory.purchaseorder (PRODUCT_ID, PURCHASE_QUANTITY, DATE_PURCHASED, TIME_PURCHASED) VALUES (" & cboProductID.Text & ", '" & txtPurchaseQty.Text & "', '" & txtDate.Text & "', '" & txtTime.Text & "')"

                    Try
                        cmd = New MySqlCommand(sqlString, con)
                        dr = cmd.ExecuteReader
                        dr.Close()
                    Catch ex As Exception
                        MsgBox("Error saving to database. Error is: " & ex.Message)
                        Exit Sub
                    End Try

                    MsgBox("Transaction Complete.")

                    lvOrderList.Items.Clear()

                    sqlString = "SELECT posinventory.purchaseorder.TRANSACTION_ID, posinventory.products.PRODUCT_ID, posinventory.products.PRODUCT_NAME, posinventory.products.SUPPLIER_NAME, posinventory.purchaseorder.PURCHASE_QUANTITY, posinventory.purchaseorder.DATE_PURCHASED, posinventory.purchaseorder.TIME_PURCHASED FROM posinventory.purchaseorder, posinventory.products WHERE posinventory.purchaseorder.PRODUCT_ID = posinventory.products.PRODUCT_ID"
                    cmd = New MySqlCommand(sqlString, con)
                    da = New MySqlDataAdapter(cmd)
                    ds = New DataSet
                    da.Fill(ds, "Table")

                    Dim i As Integer = 0
                    Dim j As Integer = 0

                    For i = 0 To ds.Tables(0).Rows.Count - 1
                        For j = 0 To ds.Tables(0).Columns.Count - 1
                            itemcol(j) = ds.Tables(0).Rows(i)(j).ToString()
                        Next

                        Dim lvi As New ListViewItem(itemcol)
                        Me.lvOrderList.Items.Add(lvi)
                    Next

                    grpCreateOrder.Enabled = False
                    grpOrderList.Enabled = True
                    cboProductID.SelectedIndex = -1
                    txtPurchaseQty.Text = ""
                    txtDate.Text = ""
                    txtTime.Text = ""
                    txtProductName.Text = ""
                    txtSupplier.Text = ""
                    txtQty.Text = ""
                    txtCeiling.Text = ""
                    btnBack.Enabled = True

                End If

            End While

        End If

        dr.Close()

    End If

End Sub

【问题讨论】:

    标签: vb.net


    【解决方案1】:

    我认为这是因为您在使用 cmd 和 dr 的循环中。当你在那里时,你正在定义一个新的 cmd 和 dr。

    尝试使用不同的名称,例如 cmd2、dr2。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-02-24
      • 2018-01-15
      • 1970-01-01
      • 2015-08-12
      相关资源
      最近更新 更多