为什么当我在 datagridview1 中按搜索两次时出现接收错误?

Why im receveing error when I press search twice in datagridview1?

提问人:misteriomarcos 提问时间:3/17/2023 最后编辑:Tusharmisteriomarcos 更新时间:3/17/2023 访问量:28

问:

我有这个代码,我认为似乎工作正常,当我编写代码并按回车键在txt_searchProduct_barcode处搜索时,插入 datagridview1 并在列中显示所有产品信息到目前为止一切正常,但是当我再次搜索以计算quatity和总数时......在最后一列中,它总是给出价格列中零的结果,以及 datagridview1 的最后一列,这里是子代码......

    Dim exist As Boolean = False, numrow As Integer = 0, numtext As Integer
    For Each itm As DataGridViewRow In DataGridView1.Rows
        If itm.Cells(0).Value IsNot Nothing Then
            If itm.Cells(1).Value.ToString = txt_searchProduct_barcode.Text Then
                exist = True
                numrow = itm.Index
                numtext = CInt(itm.Cells(8).Value)
                Exit For
            End If
        End If
    Next
    If exist = False Then
        Try
            conn.Open()
            cmd = New MySqlCommand("SELECT * FROM `tblproduct` WHERE `procode`='" & txt_searchProduct_barcode.Text & "'", conn)
            dr = cmd.ExecuteReader
            While dr.Read()
                If txt_searchProduct_barcode.Text = String.Empty Then
                    Return
                Else
                    'Create new row.
                    ' `procode`, `proname` , `progroup` , `uom` , `location` , `price` , `tax` , `totalprice`
                    Dim procode As String = dr("procode")
                    Dim Proname As String = dr("proname")
                    Dim Progroup As String = dr("progroup")
                    Dim uom As String = dr("uom")
                    Dim Price As Decimal = dr("price")
                    Dim tax As Decimal = dr("tax")
                    Dim totalprice As Decimal = dr("totalprice")

                    Dim totalqtyprice As Double

                    totalqtyprice = Price * tax / 100 + Price

                    DataGridView1.Rows.Add(DataGridView1.Rows.Count + 1, procode, Proname, Progroup, uom, Price, tax, totalprice, 1, totalqtyprice)


                End If
            End While
        Catch ex As Exception
            MsgBox(ex.Message)
        Finally
            conn.Close()
        End Try
    Else
        DataGridView1.Rows(numrow).Cells(8).Value = CInt("1") + numtext
        DataGridView1.Rows(numrow).Cells(9).Value = DataGridView1.Rows(numrow).Cells(7).Value * DataGridView1.Rows(numrow).Cells(8).Value
    End If
End Sub

我想了解错误在哪里以及如何更改。谢谢

MySQL vb.net

评论

0赞 jmcilhinney 3/17/2023
如果预览显示格式混乱,请不要提交您的问题。如果您希望我们花时间帮助您,您至少可以做的是花时间使您的问题具有可读性。
0赞 jmcilhinney 3/17/2023
另外,这个问题与phpmyadmin有什么关系?请不要添加不相关的标签。
0赞 misteriomarcos 3/17/2023
对不起,我的错,让我的问题可读。
0赞 jmcilhinney 3/17/2023
至于问题,你需要调试你的代码。如果您不知道如何操作,请停止您正在做的事情,立即学习,因为这是您在此处发布之前需要做的事情。设置断点并逐行单步执行代码,以准确查看其行为方式以及它与预期有何不同。你是开发人员,而不是用户,所以你不局限于用户可以做的事情。您可以使用开发工具。你需要使用它们。
2赞 jmcilhinney 3/17/2023
无论如何,您的代码都没什么意义。执行查询并读取第一行结果,然后检查搜索框是否为空,如果为空,则退出。当然,在进行搜索之前,您会检查搜索框。

答: 暂无答案