- - PR -
DataGridの値について(C# Winフォーム)
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-02-09 16:04
いつもお世話になっております。
DataGridセルの値をいくつか更新してそのデータを登録する時、それぞれの更新する前の値を取ることは出来ますか? ご教授ください。 | ||||
|
投稿日時: 2006-02-09 16:29
DataGridをデータバインドして使っている場合は、バインドデータソースのDataRowの参照時にDataRowVersion.Originalを指定して取り出せます。
hogeRow["fugaCol", DataRowVersion.Original] | ||||
|
投稿日時: 2006-02-09 16:58
お世話になります。
現在ソースでは「dataGrid1.DataSource = V_cldt;」のようになっています。 V_cldtを使うということでしょうか? もう少し詳細に教えて頂けないでしょうか? | ||||
|
投稿日時: 2006-02-09 17:04
V_cldt が DataSet や DataTable ならそうです。型は何ですか? _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-02-09 17:11
お世話になります。
「DataTable V_cldt;」のように宣言してあります。 型はDataTableということで宜しいでしょうか? | ||||
|
投稿日時: 2006-02-09 17:26
はい。という事なので、最初の質問の答えは「可能です」になります。 1から10まで掲示板で教えるのは少し辛いものがありますね。 「可能だ」という事が判明したので、少しご自分でもチャレンジしてみて下さい。 どうしても詰まったならば、局所的に質問してみたら他の識者の方がヒントをくれるでしょう。 _________________ 囚人のジレンマな日々 | ||||
|
投稿日時: 2006-02-09 17:42
DataRowVersion.Originalを使うべきDataRowオブジェクトの参照方法は、
>してそのデータを登録する時 の登録方法・タイミングによりますが、変更行の取得に ・DataAdapterを使っているなら RowUpdatingやRowUpdatedのイベントハンドラで、その引数から変更行を参照できます。 ・DataSetのGetChangesメソッドを使っているなら 既にDataRowそのものを取得できています。 | ||||
|
投稿日時: 2006-02-09 18:21
お世話になっております。
DataTable V_cldt; private DataTable Changed = new DataTable(); private void btn_regist_Click(object sender, System.EventArgs e) { Changed = V_cldt.GetChanges(DataRowState.Modified); foreach(DataRow dr in V_cldt.Rows) { MessageBox.Show(dr["ui_record", DataRowVersion.Original].ToString()); } } 上記のように記述すると「アクセスするOriginalデータがありません」と怒られてしまいます。何がいけないのでしょうか? |