- - PR -
DataAdapterのUpdateメソッドを制御したい
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2003-08-18 15:09
標記の件について困っております、アドバイスを頂けたらと思います。
DataSet.getChengesメソッドを実行したものをDataAdapterに渡して Updateメソッドを実行します。 getChengesした結果ということで、なんらかの変更が あった行なので、かならず更新を行いたい。 といった処理を実装するときに、更新できなかった行があった時点でエラーを 発生するなり、エラーのレコード情報を収集するなりといった処理を実装したい と思っています。 (つまり、更新は全て正常に行われたのか、行われていないならどの行なのか また、なぜできなかったのかが知りたいのです) このような事が可能なのでしょうか。 更新時にエラー(制約違反など)があった場合はContinueUpdateOnErrorプロパティや RowErrorプロパティを利用して上記の動作を実装可能だとは思いますが 更新エラーとして認識されないエラー(アプリエラー)の時に同じ処理を 行いたいと思っています。 また、もう一つの考え方として、更新が正常に行われたかはgetChengesされたDataSet の件数と、Updateの戻り値を比べれば判別できると思うのですが、どの行が 更新できなかったのかの検知方法がわからないという状況です。 Updateメソッド実行後のDataRowあたりに更新済みかそうでないかといったような 状態を保持していないのでしょうか(調べた限りではみつからなかったもので) 以上、長くなりましたが、もしなにかアドバイスがありましたら よろしくお願いいたします。 |
|
投稿日時: 2003-08-18 15:40
すいません、自己レスです。
Adapter.Updateを実行すると更新結果が0件だとエラーになりますね。 失礼しました。 |
|
投稿日時: 2003-08-18 16:01
DataAdapter.RowUpdatingイベントとか?
>つまり、更新は全て正常に行われたのか、 >行われていないならどの行なのか >また、なぜできなかったのかが知りたいのです このイベントで「これから更新(削除、挿入)を行う行」がわかるので、「ここまでは正常に終了した」ことがわかります。また、行の内容をどこかに待避しておけば、Exceptionが発生したときに、「この行が異常である」と言えると思います。 DataAdapter.RowUpdatedイベントでエラーも拾えるようですが、Exceptionがどのタイミングで発生するかわからないので。 |
1