いくつかの条件に応じて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
たい場合は、助けてください。
明確にするために、の行数が6であると仮定すると、ある列のすべての値を= 1にしてから、選択した行の値を更新しquery
たいと思いますquery
mainDatatable
- - - アップデート
わからない場合は、上記のコードを忘れてください。これが私がやろうとしていることです
-製品名と製品価格の2つの列しかないデータテーブルがありますが、同じ名前で色が異なる製品があります
-文字列名をファーシングしてこれらの製品をグループ化し、名前に同じ単語が含まれる他の製品をチェックしたいのですが、異なるのは色である 1 つの単語だけです。
- また、価格はそのグループ内の製品間で同じでなければなりません。これは上記の LINQ コードが行うことであり、完全に行われます。
-私の問題は、グループ番号と呼ばれる 3 番目の列を追加したことです。最初のグループの各製品に 1 を追加し、グループ 2 の各製品に 2 を追加します。