- PR -

GridView 変更行のみ一括更新する方法は?

投稿者投稿内容
rmmug
大ベテラン
会議室デビュー日: 2006/03/07
投稿数: 116
投稿日時: 2008-12-19 11:09
Visual Studio 2005
ASP.Net 2.0

GridViewに表示される複数の行を全て編集可能な状態にし、
編集後、変更された行のみ一括更新したいのです。
編集可能な状態には出来るのですが、行が変更されたか
どうかの判断方法や更新方法がわかりません。
よい方法はありますでしょうか?

また、GridViewにバインドしているDatasetの行には、
変更・追加・削除の情報があるらしいのですが、
それを取得する方法は、ありますでしょうか?
なかむら
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 67
お住まい・勤務地: 福岡
投稿日時: 2008-12-19 11:13
引用:

また、GridViewにバインドしているDatasetの行には、
変更・追加・削除の情報があるらしいのですが、
それを取得する方法は、ありますでしょうか?



DataSet の GetChanges メソッドで取得できます。

_________________
Nakamura Blog
セラフ
ベテラン
会議室デビュー日: 2005/12/01
投稿数: 95
お住まい・勤務地: 東北の顔の形といえば
投稿日時: 2008-12-19 11:33
引用:

fjdssklさんの書き込み (2008-12-19 11:09) より:
また、GridViewにバインドしているDatasetの行には、
変更・追加・削除の情報があるらしいのですが、
それを取得する方法は、ありますでしょうか?



Datasetの状態はGetChangesでいいかも知れませんが、行の情報はDataRowのRowStateのほうじゃなかったでしたっけ?
http://msdn.microsoft.com/ja-jp/library/system.data.datarow.rowstate%28VS.80%29.aspx
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-12-19 12:02
Update かけたら、中で自動的に振り分けてくれます。
セラフ
ベテラン
会議室デビュー日: 2005/12/01
投稿数: 95
お住まい・勤務地: 東北の顔の形といえば
投稿日時: 2008-12-19 12:04
引用:

セラフさんの書き込み (2008-12-19 11:33) より:
Datasetの状態はGetChangesでいいかも知れませんが、行の情報はDataRowのRowStateのほうじゃなかったでしたっけ?



ごめんなさい。表現がわかりづらいのでちゃんと書きます。
Datasetの中で変更があった行はGetChangesで取れますが、そこから変更・追加・削除を判断するならDataRowのRowStateを見ましょうって事です。

GetChangesにDataRowState列挙体を渡してやれば、それぞれの状態の配列で取れますが、引数の無いGetChangesで一括にRowを取得して、取得したRowの配列をぐるぐる回しながら、RowStateを見てそれぞれの処理を行うほうが自分は好きです。

ちなみにデータベースの更新なら、DataAdaptorを使ったほうが楽チンです。
rmmug
大ベテラン
会議室デビュー日: 2006/03/07
投稿数: 116
投稿日時: 2008-12-19 12:15
なかむらさん、セラフさん、有難うございます。

GetChangesやRowStateを使用して取得するタイミングですが、
ポストバック後だと、消えてしまうのでしょうか?
どのタイミングで使用すればよいのでしょうか?

VBかC#で、サンプルコードがありましたら、
参考にさせて頂きたいのですが・・・
なかむら
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 67
お住まい・勤務地: 福岡
投稿日時: 2008-12-19 13:41
引用:

GetChangesやRowStateを使用して取得するタイミングですが、
ポストバック後だと、消えてしまうのでしょうか?


DataSet を Session や ViewState に格納しているなら大丈夫だと思います。
_________________
Nakamura Blog
なかむら
ベテラン
会議室デビュー日: 2008/11/11
投稿数: 67
お住まい・勤務地: 福岡
投稿日時: 2008-12-19 14:01
引用:

VBかC#で、サンプルコードがありましたら、
参考にさせて頂きたいのですが・・・



サンプル「コード」ではありませんが、近いものを。
http://www.microsoft.com/japan/msdn/community/gdn/ShowPost-29147.htm

_________________
Nakamura Blog

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