私はプロトタイプのアプリケーションを書いています。今では、一意でない列を挿入するなど、いくつかの処理が失敗します。この場合、私はすべてのことをロールバックしたいと思います。それ、どうやったら出来るの? 私はsqliteにも気付いています。データをコミットする必要があります.C#では自動ロールバックオプションがあると思われます。トランザクションsqlite? C#で
答えて
ロールバックは:あなたが探していること
トランザクションは、コマンドテキスト「INSERT OR ROLLBACKが...」であるように見えます。 EDIT:ええ、SQLLiteは本当に「トランザクション」クエリを使用代わりにして、あなたを強制的に
using (DbTransaction dbTrans = myDBConnection.BeginTransaction())
{
using (DbCommand cmd = myDBConnection.CreateCommand())
{
...
}
dbTrans.Commit();
}
SQLite.orgは言う:
SQLiteバージョン3も にロックと同時実行制御 への変更は、トランザクションがSQL 言語レベルで動作し 方法で、いくつかの微妙な変化を紹介します。デフォルトでは、SQLite バージョン3は自動コミットモードで動作します。 自動コミットモードでは、 データベース接続に関連するすべての操作が完了するとすぐに、 データベースに対するすべての変更がコミットされます。
SQLコマンドが (TRANSACTIONキーワードはオプションです) 自動コミット・モードからのSQLiteを取るために使用されている "TRANSACTIONはBEGIN"。 BEGIN コマンドは、データベース のロックを取得しないことに注意してください。 BEGINコマンドの後、 SHAREDロックは、 の最初のSELECTステートメントが実行されたときに取得されます。 A 最初のINSERT、UPDATE、またはDELETEの ステートメントが実行されると、RESERVEDロックが取得されます。いいえ排他的な ロックは、 メモリキャッシュがいっぱいになるまで、または がディスクに書き込まれるまで、または トランザクションがコミットするまで取得されません。このようにして、 システムは、最後に可能な限り の瞬間まで、ファイルアクセスを ファイルにブロックします。 sqliteの自動的に開始するときは、特に述べる場合を除き、独自のトランザクションに各コマンドを置く:
- 1. SQLiteトランザクション数制限?
- 2. Android、SQLiteトランザクションとプロセスフリーズ
- 3. HTML5、SQLiteトランザクションの質問
- 4. SQLite C API:実行中のトランザクション、エラーへの応答
- 5. sqlite:マルチインサートトランザクションのトランザクションIDを作成する
- 6. sqliteトランザクションに関する質問
- 7. 開始、ロールバック、sqliteでxcodeでトランザクションをコミットする
- 8. SQLiteのインサートはトランザクションでも遅くなります
- 9. sqlite iphoneアプリケーションでのトランザクションの使用方法
- 10. sqlite、mono、C#クロスプラットフォーム
- 11. System.Data.Sqlite(C#)対Sqlite(C)のパフォーマンス
- 12. SQLite Windows 8 Metro C#with sqlite-net
- 13. Android用SQLiteのトランザクションはサポートされていますか?
- 14. なぜ新しい(SQLite)データベースファイルが各トランザクションで作成されるのですか?
- 15. Objective CのSqliteエラー
- 16. はC++とsqliteの
- 17. SQLite Phone Gap dbトランザクションで一部のレコードが保存されません。
- 18. C# - SQLite System.Data.SQLiteをインストールできない
- 19. C#でsqliteを使用したSQLエスケープ
- 20. C#.NETでSQLiteテーブル情報を読む
- 21. C#でSQLiteにパラメータを追加
- 22. QtでSQLiteデータベースを作成する(C++)
- 23. sqliteのデータをcで取得する
- 24. C#のオープンSQLiteのファイル
- 25. C#アプリケーション間のSqlite関数
- 26. SQLiteはC#のDateTimeがデータベース
- 27. EXE from C++、Sqlite dll if any
- 28. 問題SQLiteのDB、C位
- 29. Sqlite "Update" C#構文エラー
- 30. C++のSQLite SELECT JOINとVIEWS
:TMLは、明示的にトランザクションをコミットする/開くの
例がある彼の答えで詳しくもう少しこの部分を説明しますそれらを一つずつ送る悪い習慣。 – djangofan