Windows 8 リリース プレビューと C#(VS 2012) を使用してメトロ アプリを開発しています。SQLite は初めてです。アプリに SQLite 3.7.13 を統合しましたが、正常に動作しています。
var dbPath = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "Test.db");
using (var db = new SQLite.SQLiteConnection(dbPath))
{
var data = db.Table<tablename>().Where(tablename => tablename.uploaded_bool == false && tablename.Sid == 26);
try
{
int iDataCount = data.Count();
int id;
if (iDataCount > 0)
{
for (int i = 0; i < iDataCount; i++)
{
Elements = data.ElementAt(i);
id = Elements.id;
/*
Doing some code
*/
}
int i = db.Delete<tablename>(new tablename() { Sid = 26 });
}
}
catch (Exception ex)
{
}
}
ここで、「Sid」はデータベースの列で、番号「26」で n 個の行を取得します。したがって、for ループを使用してコードを実行する必要があり、for ループの後に Sid(26) のレコードを削除する必要がありますデータベースなので、この行で
int i = db.Delete<tablename>(new tablename() { Sid = 26 });
例外が発生してunable to close due to unfinalised statements
います。私の質問は、sqlite3 でステートメントをファイナライズする方法です。どうやら SQLite3 には、以前の DB 呼び出しを破棄するためのファイナライズ メソッドがありますが、これを実装する方法がわかりません。私を助けてください。