Ti mando un po' di codice:
codice:
    Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        If Not Me.IsPostBack() Then
            'all'inizio, tabella ordinata mediante id
            BindDataGrid("id")
        End If

    End Sub

    Private Sub BindDataGrid(ByVal SortExpression$)
        'Imposta la connessione
        Dim myConnection As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documenti\Interdev\prova.mdb;")

        'Apri la connessione
        Dim sql$ = "select * from campi order by " & SortExpression
        Dim myCommand As New OleDbDataAdapter(sql, myConnection)

        'Riempi l'oggetto DataSet
        Dim ds As DataSet = New DataSet()
        myCommand.Fill(ds, "tblUsers")

        'Scegli il tipo di visualizzazione e associalo al controllo del server
        datagrid1.DataSource = ds.Tables("tblUsers").DefaultView
        DataBind()

    End Sub

    Private Sub datagrid1_SortCommand(ByVal source As Object, ByVal e As System.Web.UI.WebControls.DataGridSortCommandEventArgs) Handles datagrid1.SortCommand
        'scatta quando si fa click nell'instestazione delle colonne

        'recupero il nome della colonna cliccata (sort expression)

        BindDataGrid(e.SortExpression)
    End Sub