@Rachel7
this is maybe a too quick shot as it replace any space in any column to NA and returns a datatable.
But you can give a try
(From r In dtData.AsEnumerable
Select ia = r.ItemArray.toList
Select ic = ia.ConvertAll(Function (e) e.ToString.Trim.Replace(" ","NA")).toArray()
Select dtCorrected.Rows.Add(ic)).CopyToDataTable()
NEW VERSION, simplified - replace all cols with only String.Empty content:
(From d In dtData.AsEnumerable
Let ra =d.ItemArray.Select(Function (x) If(isNothing(x), Nothing, x.toString.Trim.Replace("","NA"))).toArray
Select r = dtCorrected.Rows.Add(ra)).CopyToDataTable()
Variation - Handles only String Datatype Columns and keeps other DataTypes
(From d In dtData.AsEnumerable()
Let ra =d.ItemArray.Select(Function (x, i) If(d.Table.Columns(i).DataType.Equals( GetType( String )), x.ToString().Replace(";",",") , x)).ToArray()
Select r = dtCorrected.Rows.Add(ra)).CopyToDataTable()
Use statement from above within an assign and assign it to an empty dataTable: dtCorredted
Before the assignment above create an empty datatable with the same structure as OriginDataTableVar by an assign: Statement - OriginDataTableVar.Clone
dtCorrected = OriginDataTableVar.Clone()