0

私はC#とSQL Server 2012のデータセットを使用してCRUDアプリケーションを開発してきました。このプロジェクトは基本的に、ポケモンに関する情報(名前、機能、タイプ、画像など)を保持するアジェンダです。数か月までに、並行性違反に関連する問題に直面しています。つまり、プログラムの同じ実行中に追加したばかりの行を削除または更新しようとすると、同時実行例外が生成され、データベースで他の変更を実行できなくなります。したがって、変更を再度実行できるようにするには、プログラムを再起動する必要があります(重要な注意:この例外は、C#で追加された新しい行に対してのみ発生します)。私'、しかし、C#のソースコードに追加できるものは何も見つかりませんでした。誰かがこれを処理する方法を知っていますか?ソースコードに何を実装する必要がありますか?SQL Serverで役立つことがありますか?

これが私のプロジェクトへのリンク、データベースからのバックアップ、メインフォームの画像とデータベース図です。

http://www.mediafire.com/download.php?izkat44a0e4q8em(C#ソースコード)

http://www.mediafire.com/download.php?rj2e118pliarae2(SQLバックアップ)

imageshack .us / a / img 708/38 23 / pokmonform .png(メインフォーム)

imageshack .us / a / img 18/95 46 / kantopokdexdiagram .png(データベース図)

4

1 に答える 1

0

私はあなたのコードを調べましたが、データテーブルdaKantoでAcceptChangesを一貫して使用していないようです。実際、AcceptChangesDuringUpdateを使用します。これも問題ありませんdatatable.AcceptChanges()が、更新後に明示的にメソッドを呼び出すことを好みますが、方法も問題ありません。とにかく、Delete_ClickメソッドとUpdate__ClickメソッドでAcceptChangesDuringUpdateを使用していることに気付きましたが、Save_Clickでは使用しないでください。また、データセットを入力するMainForm_LoadでAcceptChangesDuringFillを使用する必要があると思います。役立つことを保証することはできませんが、アプリケーション全体でのデータアクセスの均一性により、予期しないデータ整合性エラーのリスクが軽減されることはわかっています。

于 2012-12-14T21:58:47.750 に答える