0

いくつかの条件に応じて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 たいと思いますquerymainDatatable

- - - アップデート

わからない場合は、上記のコードを忘れてください。これが私がやろうとしていることです

-製品名と製品価格の2つの列しかないデータテーブルがありますが、同じ名前で色が異なる製品があります

-文字列名をファーシングしてこれらの製品をグループ化し、名前に同じ単語が含まれる他の製品をチェックしたいのですが、異なるのは色である 1 つの単語だけです。

- また、価格はそのグループ内の製品間で同じでなければなりません。これは上記の LINQ コードが行うことであり、完全に行われます。

-私の問題は、グループ番号と呼ばれる 3 番目の列を追加したことです。最初のグループの各製品に 1 を追加し、グループ 2 の各製品に 2 を追加します。

4

0 に答える 0