2012-08-24 4 views
7

Sto provando a eseguire il porting di un'applicazione iOS che utilizza Sqlite3 nativo e fa un uso intenso di SqliteDataReader. Sulla piattaforma di destinazione utilizzo SQLIte-Net (https://github.com/praeclarum/sqlite-net) e la classe SqliteDataReader non esiste. Quali sono le mie migliori opzioni per convertire questo? L'utilizzo del lettore è sempre il codice come questo:Dove si trova SqliteDataReader in sqlite-net?

SqliteConnection oConn = AppDelegateBase.MasterDatabase.CreateDBMSConnection(); 
using (SqliteCommand oCmd = new SqliteCommand ("SELECT * FROM ATable"), oConn)) 
using (var oReader = oCmd.ExecuteReader ()) 
{ 
    while (oReader.Read ()) 
    { 
    int val = Convert.ToInt32(oReader["someColumn"]); 
    } 
    oReader.Close(); 
} 
+0

Perché vuoi che la classe DataReader sia separata? Il codice che hai postato funziona molto bene. 'OReader' è il tuo oggetto' IDbDataReader'. Meglio usare la versione di ADO.NET pubblicata da tHand – nawfal

+0

E non hai bisogno del lettore. Chiudi quando lo stai avvolgendo in una clausola using – nawfal

+0

I'min la stessa barca - ho appena postato una query su SO con un'ulteriore spiegazione di cosa sono sto cercando di fare - hai risolto il tuo problema? http://stackoverflow.com/questions/21490426/sqlitedatareader-behavior-from-sqlite-for-windows-phone-8 – jchristof

risposta

1

Non esiste un'implementazione IDataReader/IDataRecord in sqlite-net, perché sqlite-net non è l'implementazione dell'adattatore .net di ADO.

È necessario controllare prima gli esempi sulla pagina GitHub. Non si dovrebbe usare il linguaggio SQL, come descritto here. Se hai bisogno dell'implementazione di ADO, ci sono altre librerie SQLite per C#, come System.Data.SQLite (ufficiale), sqlite-csharp e Mono.Data.Sqlite.

2

Ive utilizzato l'adattatore System.Data.SQLite ADO con successo in alcuni progetti. Credo che abbia una classe SQLDataReader. Non sono sicuro che sia la stessa implementazione che stai cercando.