Mmm no c'è qualche problema. Il codice che mi avevi dato tu funzionava, ma applicava la variazione solo a un giocatore, credo per via di quel v(0) che quindi tralascia gli eventuali v(1), v(2), ...
Ho provato a risolvere così
Dim v = From o In tablePrima
Where o.Item("Netto") < 32
Select o.Item("Nome")
For Each player As Object In v
Dim w = From o In tableGiocatori
Where o.Item("Nome") = v(0)
Select o
For Each row As DataRow In w
MsgBox(row("Nome") & " " & row("Handicap"))
row("Handicap") = row("Handicap") + 0.1
Next
Next
ma il risultato è che la variazione viene applicata due volte allo stesso giocatore, credo sempre a causa di quel v(0).
Questo è un altro tentativo che ho fatto.
Dim v = From o In tablePrima
Where o.Item("Netto") < 32
Select o
For Each riga As DataRow In v
Dim w = From o In tableGiocatori
Where o.Item("Nome") Is v("Nome")
Select o
For Each row As DataRow In w
MsgBox(row("Nome") & " " & row("Handicap"))
row("Handicap") = row("Handicap") + 0.1
Next
Next
Secondo me ha un po' più di senso, ma dà errore di conversione qui
Where o.Item("Nome") Is v("Nome")
EDIT: forse ho risolto così
Dim v = From o In tablePrima
Where o.Item("Netto") < 32
Select o
For Each riga As DataRow In v
Dim w = From o In tableGiocatori
Where o.Item("Nome") = riga("Nome")
Select o
For Each row As DataRow In w
MsgBox(row("Nome") & " " & row("Handicap"))
row("Handicap") = row("Handicap") + 0.1
Next
Next
In questo modo funziona bene però bisogna sempre vedere se c'è del senso in quello che ho scritto... In particolare visual studio mi dice che non dovrei usare "riga" dentro alla query...