[英]I can't search a Datatable for one row and update row cell data in vb.net
我正在編寫 Inventory 程序並首次嘗試使用 DataTable。 我想做的就是找到正確的行並能夠更新成本、銷售價格、當前庫存等列。 我已經嘗試了很多我發現的例子,但我似乎無法讓它發揮作用。 我有一個 function 可以找到當前行索引,但我不知道如何移動到該行並更新數據。 我已經嘗試了幾種不同的方式選擇語句,但都沒有成功。 我想搜索作為自動增量記錄 ID 的項目。 這不是那么難,但我花了三天時間轉圈。 如果我能得到一點建議,我將不勝感激。 謝謝
InvtTable.Columns.Add("Item", Type.GetType("System.Int32")) ' 1 12
InvtTable.Columns.Add("ModelStyle", Type.GetType("System.String")) ' 3 2
InvtTable.Columns.Add("Description", Type.GetType("System.String")) ' 4 3
InvtTable.Columns.Add("CoverFinsh", Type.GetType("System.String")) ' 5 4
InvtTable.Columns.Add("Invt.Type", Type.GetType("System.String")) ' 6 5
InvtTable.Columns.Add("Tag No.", Type.GetType("System.String")) ' 7 6
InvtTable.Columns.Add("Loc", Type.GetType("System.String")) ' 8 7
InvtTable.Columns.Add("Curr.Invt.", Type.GetType("System.Int32")) ' 9 8
InvtTable.Columns.Add("PO", Type.GetType("System.String")) ' 10 9
InvtTable.Columns.Add("PO Date", Type.GetType("System.String")) ' 11 10
InvtTable.Columns.Add("CompID", Type.GetType("System.Int32")) ' 11 10
InvtTable.Columns.Add("Vendor", Type.GetType("System.String")) ' 11 10
InvtTable.Columns.Add("Cost", Type.GetType("System.Int32")) ' 11 10
InvtTable.Columns.Add("Retail", Type.GetType("System.Int32")) ' 11 10
InvtTable.Columns.Add("Sale", Type.GetType("System.Int32")) ' 11 10
InvtTable.Columns.Add("Note", Type.GetType("System.String")) ' 11 10
InvtTable.Columns.Add("Width", Type.GetType("System.Int32")) ' 11 10
InvtTable.Columns.Add("Length", Type.GetType("System.Int32")) ' 11 10
這是我嘗試過的一些事情。 前 1
Dim rows As DataRow() = InvtTable.[Select]("Item = '%0%' ", tbxItemID.Text)
For Each row As DataRow In rows
MsgBox("here")
Next
前 2
Dim matches = From row In InvtTable
Let Item = row.Field(Of Int32)("Item")
Where Item = Decimal.Parse(tbxItemID.Text)
c# 還有更多示例。 我希望我會朝那個方向走,但我真的不想重新開始。 我希望這對我有足夠的意義。 再次感謝你
Linq 的替代方式
Dim id As Integer = Integer.Parse(tbxItemID.Text)
Dim row As DataRow =
table.AsEnumerable().First(Function(row) row.Field(Of Integer)("Item") = id
' Update row
row.SetField("Cost", 99)
row.SetField("Sale", 199)
也就是說,我建議使用普通的 object,這將使此類操作變得非常簡單
Public Class InventoryItem
Public Property Id As Integer
Public Property ModelStyle As String
Public Property CurrentSaldo As Integer
Public Property CostPrice As Integer
Public Property SalePrice As Integer
' and so on
End Class
比您可以從數據庫或文件或其他任何地方填充項目集合
Dim inventory As List(Of Inventory) = LoadFromDatabase()
Dim id As Integer = Integer.Parse(tbxItemID.Text)
Dim item = inventory.First(Function(item) item.Id = id)
With item
.CostPrice = 99
.SalePrice = 199
.CurrentSaldo -= 1
End With
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.