出现错误(mscorlib.dll中发生了'System.ArgumentOutOfRangeException类型的未处理的异常 其他信息:索引和长度必须引用字符串中的位置。)
mycmd.Connection = myconnection.open
Dim dami As Integer = quantityt.Text
mycmd.CommandText = "Update inventory set total_quantity=total_quantity-'" & dami & "' where item_code='" & itemcodet.Text & "'"
mycmd.ExecuteNonQuery()
MsgBox("stocks decrease!!", MsgBoxStyle.Information, "Noticed..")
myconnection.close()
答案 0 :(得分:1)
我认为您对以下一行有疑问
mycmd.CommandText = "Update inventory set total_quantity=total_quantity-'" & dami & "' where item_code='" & itemcodet.Text & "'"
应该是
mycmd.CommandText = "Update inventory set total_quantity=total_quantity-" & dami & " where item_code='" & itemcodet.Text & "'"
在对整数进行计数时不要使用单引号'。仅在字符串情况下使用单引号
答案 1 :(得分:1)
我使用SQL Server提供程序进行了演示。更改为您正在使用的任何数据库。检查数据库中字段的实际数据类型。在最后一分钟打开连接。请参阅我对“使用块”的评论。
Private Sub OPCode()
Using myconnection As New SqlConnection("Your connection string")
Using mycmd As New SqlCommand("Update inventory set total_quantity = total_quantity - @dami where item_code = @itemCode;", myconnection)
mycmd.Parameters.Add("@dami", SqlDbType.Int).Value = CInt(quantityt.Text)
mycmd.Parameters.Add("@itemCode", SqlDbType.VarChar).Value = itemcodet.Text
myconnection.Open()
mycmd.ExecuteNonQuery()
End Using
End Using
MsgBox("stocks decrease!!", MsgBoxStyle.Information, "Noticed..")
End Sub