The LINQ method you used looks like it is using join to find all rows in dt1 that are also in dt2. (I could be wrong though and you should test the output of the new table using a Write Range)
So, I don’t think that’s what you need.
Instead, you need to update the first table with the column that is in the second table.
To do this, I would recommend using a combination of a For each and lambda/LINQ.
Here is a psuedocode example:
Add Data Column on dt1 //Add "Sales" column
For each row In dt1.AsEnumerable //datarow as TypeArgument - leave off AsEnumerable if you use the For each row activity
//Assign to Array variable of type DataRow
matched<DataRow> = dt2.AsEnumerable.Where(Function(r2) r2("Name").ToString.Trim = row("Name").ToString.Trim ).ToArray
//Check if a match was found
//Assign Sales value to dt1
row("Sales") = matched(0)("Sales").ToString.Trim
<perform other actions on row>
I hope I am clear enough for you and that this helps.
There might also be a way to join the Sales column to the other dt1 using LINQ but on the top of my head, I can’t think of the solution.