DataAdapter is what you use to fill your DataTable. DataView is what's used to filter, sort etc...
You're better off using a full DataSet than DataTable though. But I guess that depends on your particular application. DataSet has better sort/filter/databind options than just a DataTable
Filling a DataSet :
Dim myDataSet As DataSet
Dim myConn As SqlConnection
Dim myDataAdapter As SqlDataAdapter
Dim myView As DataView
'myConn = Your connection here
myDataAdapter = New SqlDataAdapter ("SELECT myField1, myField2 FROM myTable", myConn)
myDataSet = New DataSet()
'Single line to fill the dataset. Very simple.
myDataAdapter.Fill(myDataSet)
'Now you can use whatever DataView you like
myView = myDataSet.Tables("myTable").DefaultView
myView.RowFilter = "myField2 = 'SpecificValue'" 'Or some other SQL
myView.Sort = "myField1 DESC"
'Now you can apply it to a DataGrid and display it on your page.
'No mess, no fuss ;)
Dim myDataGrid As DataGrid
myDataGrid.DataSource = DataView
'***Very important.
'You're applying the DataView to the DataGrid, not the DataAdapter.
'Now just bind it
myDataGrid.DataBind()
The advantage is that you have a ready-made table you can play around with in a DataGrid.
Plus at a later date, you can even add in specific sort options etc directly to the DataGrid itself.
There are no "Response.Write()" lines you have to mess with.
Sorry about the rough code, it's just some on-the-spot stuff.
If you need any detailed examples, check out the Microsoft QuickStart Tutorials