Récupération des valeurs de lecture OleDbDataReader de la firebase database Access

En dessous, le code que j’utilise pour me connecter à une firebase database Access et extraire les valeurs de la requête. Le problème est .. Je ne peux obtenir aucune valeur de l’object lecteur. Je peux voir qu’il y a un nombre correct de lignes, mais je reçois toujours une InvalidOperationException (que j’utilise GetValue () ou GetSsortingng ()) en disant “Aucune donnée n’existe pour la ligne / colonne.”

System.Data.OleDb.OleDbConnection conn = new System.Data.OleDb.OleDbConnection(); conn.ConnectionSsortingng = @"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(); ssortingng companyCode = reader.GetValue(0).ToSsortingng(); ssortingng agentId = reader.GetSsortingng(1); ssortingng firstName = reader.GetSsortingng(2); ssortingng lastName = reader.GetSsortingng(3); ssortingng nameSuffix = reader.GetSsortingng(4); ssortingng corporateName = reader.GetSsortingng(5); ssortingng entityType = reader.GetSsortingng(6); ssortingng obfSSN = reader.GetSsortingng(7); ssortingng obfFEIN = reader.GetSsortingng(8); ssortingng dummyIndicator = reader.GetSsortingng(9); // Insert code to process data. } catch (Exception ex) { MessageBox.Show("Failed to connect to data source"); } finally { conn.Close(); } 

vous devez appeler la méthode de lecture comme ci-dessous (utilisez plutôt que de vous connecter

 ssortingng connectionSsortingng = @"Provider=Microsoft Office 12.0 Access Database Engine OLE DB Provider;" + @"Data source= C:\Users\nearod\Desktop\ImportDB.accdb"; ssortingng querySsortingng= "SELECT * FROM [SQL Agent Unique ID Test Load]"; try { using (OleDbConnection connection = new OleDbConnection(connectionSsortingng)) { OleDbCommand command = new OleDbCommand(querySsortingng, connection); connection.Open(); OleDbDataReader reader = command.ExecuteReader(); while (reader.Read()) { ssortingng companyCode = reader.GetValue(0).ToSsortingng(); ssortingng agentId = reader.GetSsortingng(1); ssortingng firstName = reader.GetSsortingng(2); ssortingng lastName = reader.GetSsortingng(3); ssortingng nameSuffix = reader.GetSsortingng(4); ssortingng corporateName = reader.GetSsortingng(5); ssortingng entityType = reader.GetSsortingng(6); ssortingng obfSSN = reader.GetSsortingng(7); ssortingng obfFEIN = reader.GetSsortingng(8); ssortingng dummyIndicator = reader.GetSsortingng(9); // Insert code to process data. } reader.Close(); } } catch (Exception ex) { MessageBox.Show("Failed to connect to data source"); } 

Modifiez votre code comme ceci:

 using (OleDbConnection connection = new OleDbConnection(connectionSsortingng)) { OleDbCommand command = new OleDbCommand(querySsortingng, connection); connection.Open(); using (OleDbDataReader reader = command.ExecuteReader()) { while (reader.Read()) { ssortingng companyCode = reader.GetValue(0).ToSsortingng(); ssortingng agentId = reader.GetSsortingng(1); ssortingng firstName = reader.GetSsortingng(2); ssortingng lastName = reader.GetSsortingng(3); ssortingng nameSuffix = reader.GetSsortingng(4); ssortingng corporateName = reader.GetSsortingng(5); ssortingng entityType = reader.GetSsortingng(6); ssortingng obfSSN = reader.GetSsortingng(7); ssortingng obfFEIN = reader.GetSsortingng(8); ssortingng dummyIndicator = reader.GetSsortingng(9); // Insert code to process data. } } }