从“股票”类型到整数类型的转换在 vb.net 中无效。
实际上,下面的代码是我用来减少“Stocks”表的
我的代码有问题吗,请指导我。
代码实现可能有问题
谢谢
Private itrservice As New ItemtransfersService()
Private itrservicedetail As New ItemtransfersService()
Private sservice As New Stockservice()
Private Sub BIBsave_Click(sender As Object, e As EventArgs) Handles BIBsave.Click
Try
If grid.RowCount = 0 Then
Throw New Exception("Enter Item data item first")
End If
Dim obj = New ItemTransfers With {
.Invno = BtxtInvoNo.Text,
.HeaderInvno = HeaderInvno,
.Created = DateTime.Now
}
itrservice.InsertItemTransfers(obj)
For i = 0 To _myTable.Rows.Count - 1
Dim detail = New ItemTransfersDetail With {
.No = Convert.ToInt32(_myTable.Rows(i)(0)),
.Invno = BtxtInvoNo.Text,
.CodeProduct = _myTable.Rows(i)(1).ToString(),
.Barcode = _myTable.Rows(i)(2).ToString(),
.Colorcode = _myTable.Rows(i)(3).ToString(),
.Size = _myTable.Rows(i)(4).ToString(),
.Qty = Convert.ToInt32(_myTable.Rows(i)(5).ToString())
}
itrservicedetail.InsertItemTransfersdetail(detail)
Dim getstocks = New Stocks With {
.CodeProduct = _myTable.Rows(i)(1).ToString(),
.Barcode = _myTable.Rows(i)(2).ToString(),
.Colorcode = _myTable.Rows(i)(3).ToString(),
.Size = _myTable.Rows(i)(4).ToString()
}
Dim GetStock As Integer = sservice.GetStock2(getstocks)
Dim stocks = New Stocks With {
.QTY_STOCK = Convert.ToInt32((GetStock - detail.Qty)),
.CodeProduct = _myTable.Rows(i)(1).ToString(),
.Barcode = _myTable.Rows(i)(2).ToString(),
.Colorcode = _myTable.Rows(i)(3).ToString(),
.Size = _myTable.Rows(i)(4).ToString()
}
sservice.Updatestockminus(stocks)
Next i
'show success message
MessageBox.Show("Transaction Item Transfer successfully added")
Catch ex As Exception
MessageBox.Show(ex.Message, "POS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try
End Sub
Public Sub Updatestockminus(ByVal Obj As Stocks)
Dim sql = $"UPDATE `Stocks` Set `QTY_STOCK`= {Obj.QTY_STOCK} WHERE `CodeProduct`='{Obj.CodeProduct}' and `BARCODE`='{Obj.Barcode}' and `COLORCODE`='{Obj.Colorcode}' and `SIZE`='{Obj.Size}';"
Using _conn = New OleDbConnection(DbContext.GetOledbConnectionString())
_conn.Execute(sql)
End Using
End Sub
Public Function GetStock2(ByVal Obj As Stocks)
Dim sql = $"SELECT QTY_STOCK FROM Stocks WHERE `CodeProduct`='{Obj.CodeProduct}' and `BARCODE`='{Obj.Barcode}' and `COLORCODE`='{Obj.Colorcode}' and `SIZE`='{Obj.Size}';"
Using _conn = New OleDbConnection(DbContext.GetOledbConnectionString())
Return _conn.Query(Of Stocks)(sql).FirstOrDefault()
End Using
End Function
终于找到解决问题的办法了
Private itrservice As New ItemtransfersService()
Private itrservicedetail As New ItemtransfersService()
Private sservice As New Stockservice()
Private Sub BIBsave_Click(sender As Object, e As EventArgs) Handles BIBsave.Click
Try
If grid.RowCount = 0 Then
Throw New Exception("Enter Item data item first")
End If
Dim obj = New ItemTransfers With {
.Invno = BtxtInvoNo.Text,
.HeaderInvno = HeaderInvno,
.Created = DateTime.Now
}
itrservice.InsertItemTransfers(obj)
For i = 0 To _myTable.Rows.Count - 1
Dim detail = New ItemTransfersDetail With {
.No = Convert.ToInt32(_myTable.Rows(i)(0)),
.Invno = BtxtInvoNo.Text,
.CodeProduct = _myTable.Rows(i)(1).ToString(),
.Barcode = _myTable.Rows(i)(2).ToString(),
.Colorcode = _myTable.Rows(i)(3).ToString(),
.Size = _myTable.Rows(i)(4).ToString(),
.Qty = Convert.ToInt32(_myTable.Rows(i)(5).ToString())
}
itrservicedetail.InsertItemTransfersdetail(detail)
Dim getstocks = New Stocks With {
.CodeProduct = _myTable.Rows(i)(1).ToString(),
.Barcode = _myTable.Rows(i)(2).ToString(),
.Colorcode = _myTable.Rows(i)(3).ToString(),
.Size = _myTable.Rows(i)(4).ToString()
}
Dim GetStock = sservice.GetStock2(getstocks)
Dim stocks = New Stocks With {
.QTY_STOCK = GetStock.QTY_STOCK - (detail.Qty),
.CodeProduct = _myTable.Rows(i)(1).ToString(),
.Barcode = _myTable.Rows(i)(2).ToString(),
.Colorcode = _myTable.Rows(i)(3).ToString(),
.Size = _myTable.Rows(i)(4).ToString()
}
sservice.Updatestockminus(stocks)
Next i
'show success message
MessageBox.Show("Transaction Item Transfer successfully added")
Catch ex As Exception
MessageBox.Show(ex.Message, "POS", MessageBoxButtons.OK, MessageBoxIcon.Exclamation)
End Try
End Sub
Public Sub Updatestockminus(ByVal Obj As Stocks)
Dim sql = $"UPDATE `Stocks` Set `QTY_STOCK`= {Obj.QTY_STOCK} WHERE `CodeProduct`='{Obj.CodeProduct}' and `BARCODE`='{Obj.Barcode}' and `COLORCODE`='{Obj.Colorcode}' and `SIZE`='{Obj.Size}';"
Using _conn = New OleDbConnection(DbContext.GetOledbConnectionString())
_conn.Execute(sql)
End Using
End Sub
Public Function GetStock2(ByVal Obj As Stocks) As Stocks
Dim sql = $"SELECT QTY_STOCK FROM Stocks WHERE `CodeProduct`='{Obj.CodeProduct}' and `BARCODE`='{Obj.Barcode}' and `COLORCODE`='{Obj.Colorcode}' and `SIZE`='{Obj.Size}';"
Using _conn = New OleDbConnection(DbContext.GetOledbConnectionString())
Return _conn.Query(Of Stocks)(sql).FirstOrDefault()
End Using
End Function