2012-08-24 10 views
7

ネイティブSqlite3を使用するiOSアプリケーションを移植しようとしており、SqliteDataReaderを頻繁に使用しています。 ターゲットプラットフォームではSQLIte-Net(https://github.com/praeclarum/sqlite-net)を使用していますが、SqliteDataReaderクラスは存在しません。 これを変換するための最良の選択肢は何ですか?sqlite-data-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

なぜDataReaderクラスを個別にしたいのですか?投稿したコードはうまく機能します。 'oReader'はあなたの' IDbDataReader'オブジェクトです。 tHandによって投稿されたADO.NETのバージョンを使用してください。 – nawfal

+0

あなたはそれを使用節でラッピングするときにreader.Closeを必要としません。 – nawfal

+0

私は同じボートをI'minしています。あなたの問題を解決しましたか? http://stackoverflow.com/questions/21490426/sqlitedatareader-behavior-from-sqlite-for-windows-phone-8 – jchristof

答えて

1

sqlite-netはADOアダプタの.NET実装ではないため、sqlite-netにIDataReader/IDataRecord実装はありません。

まずGitHubページの例を確認してください。 hereのように、SQL言語を使用すべきではありません。 ADO imlementationが必要な場合は、System.Data.SQLite(公式)、sqlite-csharp、Mono.Data.Sqliteなど、C#用の他のSQLiteライブラリがあります。

2

アイブ氏はいくつかのプロジェクトで正常にSystem.Data.SQLite ADOアダプタを使用:読者の使用は、常にこのようなコードです。私はそれがSQLDataReaderクラスを持っていると信じています。あなたがその同じ実装をしているのかどうかはわかりませんが。

関連する問題