我有以下代码,根据某些条件使用LINQ选择一些行。
Dim cname
Dim Category
Dim cprice
Try
For i = 0 To mainDatatable.Rows.Count - 1
cname = mainDatatable.Rows(i)("cname")
Category = mainDatatable.Rows(i)("ccategory")
cprice = mainDatatable.Rows(i)("cprice")
Dim nameparts() As String = cname.Split(New String() {" "}, StringSplitOptions.None)
Dim query = From products In mainDatatable.AsEnumerable()
Where products.Field(Of Integer)("ccategory") = Category And products.Field(Of Double)("cprice") = cprice And products.Field(Of String)("cname").Contains(nameparts(0)) And products.Field(Of String)("cname").Contains(nameparts(1))
Select products
If query.Count > 1 Then
'then i want to do some changes to those rows
End If
Next
Catch ex As Exception
MsgBox(ex.Message)
End Try
代码运行正常,但我需要对选定的行进行更改。我不知道该怎么做,例如我有一个名为gprice的列,我希望它为所有选定的行设置一些值,并将更改保存到mainDatatable
,这样会得到你的帮助。
为清楚起见,假设query
中的行数为6,那么我想为query
= 1中的某些列创建所有值,然后更新所选行的值在mainDatatable
------更新
如果你没有忘记上面的代码,这就是我想要做的事情
-Ii有一个数据表它只有2列产品名称和产品价格,现在有同名但颜色不同的产品
- 我希望通过查看字符串名称对这些产品进行分组,并检查名称中包含相同字词的其他产品,只允许一个字不同,这就是颜色,
- 该组中的产品之间的价格也必须相同,这就是上面的LINQ代码所做的,它完美地完成了它
- 我的问题是我添加了一个名为groupnumber的第三列,我想为第一组中的每个产品添加1,为第二组中的每个产品添加2,依此类推。