2012-08-24 3 views
7

Ich versuche, eine iOS-Anwendung zu portieren, die natives Sqlite3 verwendet und SqliteDataReader stark nutzt. Auf der Zielplattform verwende ich SQLIte-Net (https://github.com/praeclarum/sqlite-net) und dort die SqliteDataReader Klasse existiert nicht. Was sind meine besten Optionen, um dies zu konvertieren? Die Verwendung des Lesers ist immer Code wie folgt:Wo ist 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

Warum möchten Sie die DataReader-Klasse separat? Der von Ihnen gepostete Code funktioniert sehr gut. Der 'oReader' ist Ihr' IDbDataReader' Objekt. Bessere Verwendung der ADO.NET-Version von tHand geschrieben – nawfal

+0

Und Sie brauchen nicht das Lesegerät.Schließen Sie, wenn Sie es in eine using-Klausel – nawfal

+0

Ich bin im selben Boot - nur eine Abfrage auf SO mit einer weiteren Erklärung, was ich ' Ich versuche zu tun - hast du dein Problem gelöst? http://stackoverflow.com/questions/21490426/sqlitedatareader-behavior-from-sqlite-for-windows-phone-8 – jchristof

Antwort

1

Es gibt keine IDataReader/IDataRecord-Implementierung in sqlite-net, da sqlite-net keine ADO-Adapter .net-Implementierung ist.

Sie sollten zuerst die Beispiele auf der GitHub-Seite prüfen. Sie sollten keine SQL-Sprache verwenden, wie beschrieben here. Wenn Sie ADO-Implementation benötigen, gibt es andere SQLite-Bibliotheken für C#, wie System.Data.SQLite (offiziell), sqlite-csharp und Mono.Data.Sqlite.

2

Ive den System.Data.SQLite ADO-Adapter erfolgreich in einigen Projekten eingesetzt. Ich glaube, es hat eine SQLDataReader-Klasse. Ich bin nicht sicher, ob es die gleiche Implementierung ist, nach der Sie jedoch sind.