L'obtention de valeurs de retour de OleDbDataReader lecture à partir de la base de données Access

Ci-dessous le code que j'utilise pour se connecter à une base de données Access et tirez sur les valeurs de la requête. Le problème est.. je ne peut pas obtenir toutes les valeurs de retour de l'objet de lecteur. Je peux voir qu'il y a le bon nombre de lignes, mais je reçois une exception InvalidOperationException (si je utiliser GetValue() ou GetString()) en disant: "il n'existe Aucune donnée pour la ligne/colonne."

        System.Data.OleDb.OleDbConnection conn = new
        System.Data.OleDb.OleDbConnection();
        conn.ConnectionString = @"Provider=Microsoft Office 12.0 Access Database Engine OLE DB Provider;" +
                                @"Data source= C:\Users\nearod\Desktop\ImportDB.accdb";
        try
        {
            conn.Open();
            OleDbCommand cmd = new OleDbCommand("SELECT * FROM [SQL Agent Unique ID Test Load]", conn);

            OleDbDataReader reader = cmd.ExecuteReader();

            string companyCode = reader.GetValue(0).ToString();
            string agentId = reader.GetString(1);
            string firstName = reader.GetString(2);
            string lastName = reader.GetString(3);
            string nameSuffix = reader.GetString(4);
            string corporateName = reader.GetString(5);
            string entityType = reader.GetString(6);
            string obfSSN = reader.GetString(7);
            string obfFEIN = reader.GetString(8);
            string dummyIndicator = reader.GetString(9);
            //Insert code to process data.
        }
        catch (Exception ex)
        {
            MessageBox.Show("Failed to connect to data source");
        }
        finally
        {
            conn.Close();
        }

OriginalL'auteur NealR | 2012-08-22