2010-12-07 11 views
1

ねえ、みんな。私はデータベースに保存されているデータを入力するユーザーのためにdatagridviewを使用することに問題があります。基本的に、私はそれらの行に物事をスローし、私のコードは、データを挿入します。私は何をしようとしているのか何かイベントがなければならないことを知っています。私はそれを理解できません。.NET - DataGridView - ユーザーが行を追加したときにデータベースに更新する

私はLeavingRowイベントを試しましたが、その問題は、このイベントがトリガされたときに最終値が更新されていないことです。つまり、4列の行があり、ユーザーが最初の3列にデータを入力したとします。最後の列に情報を入力し、次に押して新しい行を入力します。最後の列がまだ空であると考えられるため、挿入が失敗します。

私もUserAddsRowを試しましたが、ユーザーが行を追加するために入力を開始するとすぐにトリガーするため、追加しようとしていた行の最初の列には1文字しか表示されませんでした。

誰かが私の目的のためにこれらのイベントやその他のイベントを取得するための提案を持っていますか?

私が計量している2つのスタイルは、a)いくつかのラベル/テキストボックスと追加ボタンを一緒にストリングするか、b)DataGridCell_ValueChangedイベントを使用して、最初に挿入しようとするネストされたtry/catchを持つ。更新が失敗した場合は何もしません。非常に非効率ですが、このデータグリッドビューでは、一度に数十列のトップが揃うため、仕事が完了すると思います。

ありがとうございます。

答えて

2

通常、私はRowValidatedイベントを使用します。このイベントは、変更を保存しようとする前に行全体を入力/編集できるようにするために使用します。

イベントを処理するときに、データセット(DataSet.GetChanges)から追加、更新、または削除された行が取得され、タイプ(Add、Update、Delete)ごとに適切なアクションが実行されます。

+0

ありがとうございました!これはまさに私がしなければならないことでした。私は、その出来事に目を通しながら、私が学んだフォーカスを変えるプロセスについて深刻な理解を持っていました。 – Nick

+1

'RowValidated'イベントは、行選択の変更後にいくつかの状況でさえ多くの理由で発生することに注意してください。データベースを更新するためのデータ変更アクションが原因であるかどうかを検出する必要があります –

関連する問題