Hi
I have a solution, although there is some different with your requirement . Maybe you can try sqldatareader,reload the data to a new datatable as you like,some thing like this
System.Data
System.Data.SqlClient
Class Form1
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim conn As New SqlConnection("Server=(Local);" & _
"DataBase=Northwind; Integrated Security=SSPI")
Dim sqlstr As String = "SELECT FirstName,LastName FROM Employees"
Dim command As New SqlCommand(sqlstr, conn)
Dim dt As New DataTable
dt.Columns.Add("c1", GetType(System.String))
dt.Columns.Add("c2", GetType(System.String))
dt.Columns.Add("c3", GetType(System.String))
dt.Columns.Add("c4", GetType(System.String))
Dim bf As New Boolean
bf = True
Dim j As Integer = 0
conn.Open()
Dim reader As SqlDataReader = command.ExecuteReader()
While reader.Read()
If bf = False Then
Dim line, line1 As String
line = reader.GetString(0).ToString()
line1 = reader.GetString(1).ToString()
dt.Rows.Add()
dt.Rows(j).Item(0) = line
dt.Rows(j).Item(1) = line1
bf = True
j = j + 1
Else
Dim line, line1 As String
dt.Rows.Add()
line = reader.GetString(0).ToString()
line1 = reader.GetString(1).ToString()
dt.Rows(j).Item(2) = line
dt.Rows(j).Item(3) = line1
bf = False
End If
End While
conn.Close()
Me.DataGridView1.DataSource = dt
End Sub
Class
Hope it helps