- PR -

画面更新によるDBへの更新抑制について

1
投稿者投稿内容
.Net Beginner
会議室デビュー日: 2007/08/31
投稿数: 5
投稿日時: 2007-09-19 10:27
いつもお世話になります。

現在、ASP.NETを使用して、単純にAccessへ新規レコードを追加するルーチンを
作製しています。
画面構成としては、Multiviewを使用し、view1に入力フィールドと「追加」ボタンを配置し、
「追加」ボタンのClickイベントにより、レコード追加とView2への切り替えを行っています。

View2では、レコード追加の成功/失敗を判断し、それぞれのメッセージを表示すると
いうものです。

問題は、このView2が表示されている際に、画面の更新を行うと、同一内容のレコードが
次々と追加されてしまうということです。

表示されているViewのインデックスによりExecuteNonQueryを実行することも試しましたが
効果がありませんでした。

何卒ご教示くださいますよう、お願いいたします。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2007-09-19 18:28
引用:

.Net Beginnerさんの書き込み (2007-09-19 10:27) より:
いつもお世話になります。

現在、ASP.NETを使用して、単純にAccessへ新規レコードを追加するルーチンを
作製しています。
画面構成としては、Multiviewを使用し、view1に入力フィールドと「追加」ボタンを配置し、
「追加」ボタンのClickイベントにより、レコード追加とView2への切り替えを行っています。

View2では、レコード追加の成功/失敗を判断し、それぞれのメッセージを表示すると
いうものです。

問題は、このView2が表示されている際に、画面の更新を行うと、同一内容のレコードが
次々と追加されてしまうということです。

表示されているViewのインデックスによりExecuteNonQueryを実行することも試しましたが
効果がありませんでした。

何卒ご教示くださいますよう、お願いいたします。



ユーザー アクションと、二つのビューの関係がわかりません。
ビュー2に切り替えるのでしょ?なぜ、ビュー2が表示されているのですか?

また、表示されている場合に次々新規行が追加されるというのもわかりません。


あれ?
ビュー2を、ブラウザの「更新」ボタンで更新?
だったら、ビュー2の Page_Load に書いているであろう追加処理を、ビュー1のボタン イベントに移せば問題ないですよね?
どっとねっとふぁん
ぬし
会議室デビュー日: 2005/02/23
投稿数: 935
投稿日時: 2007-09-20 15:11
View2が表示されている状態でブラウザの更新ボタンが押されると、ブラウザは
直前のPOST時の動作を行うと思います。
ここで直前のPOST時の動作、というのは追加ボタンをクリックした処理、という
ことですから、データが追加されていくのはある意味正しい動作ではないでしょうか。
ブラウザ側で何かメッセージだしてませんか?
1

スキルアップ/キャリアアップ(JOB@IT)