2012-08-24 17 views
7

Estoy tratando de portar una aplicación de iOS que usa Sqlite3 nativo y hace un uso intensivo de SqliteDataReader. En la plataforma de destino utilizo SQLIte-Net (https://github.com/praeclarum/sqlite-net) y allí la clase SqliteDataReader no existe. ¿Cuáles son mis mejores opciones para convertir esto? El uso del lector es siempre un código como éste:¿Dónde está SqliteDataReader en 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

¿Por qué quiere la clase DataReader por separado? El código que publicaste funciona muy bien. El 'oReader' es su objeto' IDbDataReader'. Es mejor utilizar la versión ADO.NET publicada por tHand – nawfal

+0

Y no necesita el lector. Cerrar cuando lo está envolviendo en una cláusula de uso – nawfal

+0

I'min el mismo barco - acaba de publicar una consulta en SO con una explicación más detallada de lo que ' Estoy tratando de hacerlo. ¿Solucionaste tu problema? http://stackoverflow.com/questions/21490426/sqlitedatareader-behavior-from-sqlite-for-windows-phone-8 – jchristof

Respuesta

1

No hay implementación de IDataReader/IDataRecord en sqlite-net, porque sqlite-net no es una implementación ADO de adaptador ADO.

Primero debe verificar los ejemplos en la página de GitHub. No debe usar el lenguaje SQL, como se describe here. Si necesita la implementación de ADO, existen otras bibliotecas de SQLite para C#, como System.Data.SQLite (oficial), sqlite-csharp y Mono.Data.Sqlite.

2

he utilizado el adaptador de ADO System.Data.SQLite con éxito en algunos proyectos. Creo que tiene una clase SQLDataReader. Sin embargo, no estoy seguro de si es la misma implementación que buscas.