- 締切済み
SQLite3 の UpdateCommand エラー
SQLite3 の UpdateCommand エラー Windows XP Pro 上で、Visual Studio 2005 Enterprise Edition(VB) を用いて 開発しています。 DB として SQLite3 を使用しているのですが、 あるテーブルのレコードの列を増やしたところ、Update でエラーが出るようになってしまいました。 当該テーブルは1データのみを保持するテーブルで、 "select * from TABLE_XX " で SQLiteDataAdapter を用いてDataSource に読み込ませ、 その内容を画面に表示します。 また、画面から変更された内容は、DataTable の DataRow に反映し DataAdapter の UPDATE メソッドでDBを更新していました。 今回画面の項目が増えた為、テーブルの項目(列)を増やしたんですが、UPDATE メソッドの実行で 「DBConcurrencyException はハンドルされませんでした。」 同時実行違反 : UpdateCommand によって、処理予定の 1 レコードのうち 0 件が処理されました。 のエラーが発生してしまいます。 当該テーブルの列数は23ヶで、先頭列(="ID")がPK(AutoIncrement)です。 増やした列は、既存の列とほぼ同様の取り扱いをしています。 よろしくお願いします。s
- みんなの回答 (1)
- 専門家の回答
みんなの回答
- paraspor
- ベストアンサー率26% (4/15)
回答No.1
追加した列のデータ型は何でしょうか? こちらのSQLite.DLL使用ですよね? http://sqlite.phxsoftware.com/
補足
paraspor さん、回答ありがとうございます。 追加した列は複数あり、INTEGER型、TEXT型の混在です。 試行錯誤する中で、試しに追加した列の中のすべてのINTEGER型をTEXT型に置き換えたところ UPDATEメソッドのエラーが発生しませんでした。 既存の列にはINTEGER型の列が存在しているのですが、 追加した列のINTEGER型だけがUPDATEメソッドに対して悪さをしているようです。 単純にINTEGER型が間違っているとは思えませんので、何か他との複合技により UPDATEを阻害されているのでは…と考えています。 一応TEXT型の列に置き換えた上で開発を進め、現在テスト中ですが、現時点では問題は出ておりません。 一見、一件落着っぽいのですが、根本的な解決が見られていない事 や 今後のSqliteでの開発でのDB設計に 大きな不安が残るのも事実です。 また、SQLite.dll の出所は不明です。 ちなみにSQLite.dll のプロパティ(バージョン情報)は ・ファイル バージョン: 1.0.65.0 ・説明: System.Data.SQLite Interop Library ・著作権: Released to the public domain 詳細: (コメント) http://sqlite.phxsoftware.com (ファイル バージョン) 1.0.65.0 (言語) 英語(米国) (正式ファイル名) SQLite3.DLL.3.6.16 (製品バージョン) 1.0 (製品名) System.Data.SQLite (内部名) SQLite.Interop.DLL です。 よろしくお願いします。