Private Function RetrieveSourceData2() As DataTable Dim sourcedata As New DataTable Dim sr As New StreamReader("C:\TEMP\X1.CSV") Dim line As String = sr.ReadLine() Dim value As String() = line.Split(vbTab) Dim row As DataRow For Each dc As String In value sourcedata.Columns.Add(New DataColumn()) Next Do While Not sr.EndOfStream If value.Length = sourcedata.Columns.Count Then row = sourcedata.NewRow() row.ItemArray = value sourcedata.Rows.Add(row) End If value = sr.ReadLine.Split(vbTab) Loop Return sourcedata End Function