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,希望您能提供帮助。

为了清楚起见,假设 中的行数query 为 6,那么我想让query= 1 中的某些列的所有值,然后更新中选定行的值mainDatatable

- - - 更新

如果你没有得到它忘记上面的代码,这就是我想要做的

-我有一个数据表,它只有两列产品名称和产品价格,现在有同名但颜色不同的产品

-我想通过解析字符串名称对这些产品进行分组,并检查名称中具有相同单词的其他产品,只允许一个单词不同,即颜色,

-该组中的产品之间的价格也必须相同,这就是上面的 LINQ 代码所做的并且它完美地完成了

-我的问题是我添加了名为 groupnumber 的第三列,我想为第 1 组中的每个产品添加 1,为第 2 组中的每个产品添加 2,依此类推。

4

0 回答 0