Salve a tutti,
ho un datareader che seleziona dei dati da un database access e il suo codice è il seguente:

codice:
Dim connessione As New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\Documents and Settings\Gui\Documenti\Visual Studio 2005\WebSites\WebSite8\database.mdb; Persist Security Info=False")
        connessione.Open()
        Dim Seleziona As String
        Seleziona = "SELECT * FROM Utenti"
        Dim controlla As New OleDbCommand(Seleziona, connessione)
        'controlla.ExecuteReader()
        Dim Datareader As OleDbDataReader
        Datareader = controlla.ExecuteReader
        Datareader.Read()
Ora inanzi tutto vorrei sapere se c'è un modo per sapere quanti risultati mi ha restituito, a parte leggerne tutti i risultati con un ciclo while ed incrementarne un contatore.

Dopo aver creato questo datareader vorrei mettere i dati ottenuti in una Gridview, ho trovato sul forum un codice che ho adattato nel seguente modo:


codice:
Dim dt As New DataTable

        Dim myColumn As New DataColumn()
        myColumn.DataType = System.Type.GetType("System.Int32")
        myColumn.ColumnName = "Indice"
        dt.Columns.Add(myColumn)

        ' link
        myColumn = New DataColumn()
        myColumn.DataType = Type.GetType("System.Integer")
        myColumn.ColumnName = "Nominativo"
        dt.Columns.Add(myColumn)

        While Datareader.Read
            dt.NewRow("Indice") = Datareader.Item(0)
            dt.NewRow("Nominativo") = Datareader.Item(1)

        End While
        GridView1.DataSource = dt
Il codice però mi da errore nella creazione delle nuove righe, indicandomi errore nella seguente riga:
codice:
 dt.NewRow("Indice") = Datareader.Item(0)
Cosa c'è di sbagliato? secondo logica sto solo creando una nuova riga della datatable e nulla più, ma sicuramente mi è sfuggito qualcosa.

Vi ringrazio in anticipo per le risposte,
Neptune.