- PR -

DataGridの値について(C# Winフォーム)

投稿者投稿内容
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 2006-02-09 16:04
いつもお世話になっております。

DataGridセルの値をいくつか更新してそのデータを登録する時、それぞれの更新する前の値を取ることは出来ますか?
ご教授ください。
鎌田
常連さん
会議室デビュー日: 2003/09/23
投稿数: 45
投稿日時: 2006-02-09 16:29
DataGridをデータバインドして使っている場合は、バインドデータソースのDataRowの参照時にDataRowVersion.Originalを指定して取り出せます。

hogeRow["fugaCol", DataRowVersion.Original]
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 2006-02-09 16:58
お世話になります。

現在ソースでは「dataGrid1.DataSource = V_cldt;」のようになっています。
V_cldtを使うということでしょうか?
もう少し詳細に教えて頂けないでしょうか?
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-02-09 17:04
引用:

現在ソースでは「dataGrid1.DataSource = V_cldt;」のようになっています。
V_cldtを使うということでしょうか?
もう少し詳細に教えて頂けないでしょうか?


V_cldt が DataSet や DataTable ならそうです。型は何ですか?

_________________
囚人のジレンマな日々
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 2006-02-09 17:11
お世話になります。

「DataTable V_cldt;」のように宣言してあります。
型はDataTableということで宜しいでしょうか?
囚人
ぬし
会議室デビュー日: 2005/08/13
投稿数: 1019
投稿日時: 2006-02-09 17:26
引用:

型はDataTableということで宜しいでしょうか?


はい。という事なので、最初の質問の答えは「可能です」になります。

1から10まで掲示板で教えるのは少し辛いものがありますね。
「可能だ」という事が判明したので、少しご自分でもチャレンジしてみて下さい。

どうしても詰まったならば、局所的に質問してみたら他の識者の方がヒントをくれるでしょう。
_________________
囚人のジレンマな日々
鎌田
常連さん
会議室デビュー日: 2003/09/23
投稿数: 45
投稿日時: 2006-02-09 17:42
DataRowVersion.Originalを使うべきDataRowオブジェクトの参照方法は、

>してそのデータを登録する時

の登録方法・タイミングによりますが、変更行の取得に

・DataAdapterを使っているなら
 RowUpdatingやRowUpdatedのイベントハンドラで、その引数から変更行を参照できます。
・DataSetのGetChangesメソッドを使っているなら
 既にDataRowそのものを取得できています。
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 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データがありません」と怒られてしまいます。何がいけないのでしょうか?

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