1

私は、c#、XAML、SQLiteを使用してWindows8用のメトロスタイルアプリを開発しています。現在、問題が発生しています。私は更新を使用しているか、いくつかの詳細を保存していますが、以下のコードを使用してデータをSQLiteに書き込もうとしています

StorageFolder DataFolder = await Package.Current.InstalledLocation.GetFolderAsync("data");
StorageFile DataFile = await DataFolder.GetFileAsync("Test.sqlite");

if ( DataFile != null)
{
    var db = new SQLite.SQLiteConnection(DataFile .Path, SQLiteOpenFlags.ReadWrite);
    SQLiteCommand cmd = new SQLiteCommand(db);
    cmd.CommandText = "UPDATE Test SET Value=1000 WHERE Id = 5";
    cmd.ExecuteNonQuery();
}

ただし、プログラムがデバッグ中の場合、およびカーソルが「cmd.ExecuteNonQuery()」にある場合</ p>

タイプ'SQLite.SQLiteException'の例外がSQLite_Sample.exeで発生しましたが、ユーザーコードでは処理されませんでした

追加情報:読み取り専用この例外のハンドラーがある場合、プログラムは安全に続行できます。

読み取り/書き込み機能のために、このSQLiteファイルにプログラムでアクセス許可を設定したいと思います。

誰かがこれについて私を導くことができますか?

4

1 に答える 1

0

問題は、接続を開いていないことだと思います。

if ( DataFile != null) 
{ 
    using (var db = new SQLite.SQLiteConnection(DataFile.Path, SQLiteOpenFlags.ReadWrite))
    {
        SQLiteCommand cmd = new SQLiteCommand(db); 
        cmd.CommandText = "UPDATE Test SET Value=1000 WHERE Id = 5"; 
        db.Open();
        cmd.ExecuteNonQuery(); 
    }
} 

パラメータ化されたコマンドを使用することを忘れないでください。

于 2012-08-30T14:41:44.707 に答える