- PR -

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

投稿者投稿内容
鎌田
常連さん
会議室デビュー日: 2003/09/23
投稿数: 45
投稿日時: 2006-02-09 22:29
>上記のように記述すると「アクセスするOriginalデータがありません」と怒られてしまいます。何がいけないのでしょうか?

文字通り"Originalデータ"がないのでしょう。
V_cldtのデータをどのように生成しているのわかりませんが、DataAdapterのFillメソッドなどでデータベースから正常に取得できているとすれば、興味深い症状です。

MessageBox.Show(dr["ui_record"].ToString()); と変更してデータを表示できますか。
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 2006-02-10 11:48
お世話になります。
引用:

MessageBox.Show(dr["ui_record"].ToString()); と変更してデータを表示できますか。


上記のように記述してデータを表示することは出来ました。

DBの値取得は下記のように書いています。
SqlDataReader V_clReader = V_cldb.SqlExecuteReader(V_sSQL);

while(V_clReader.Read())
{
DataRow V_cldr = V_cldt.NewRow();
V_cldr[0] = V_clReader["test1"].ToString().Trim();
V_cldr[1] = V_clReader["test2"].ToString().Trim();
V_cldr[2] = V_clReader["test3"].ToString().Trim();
V_cldt.Rows.Add(V_cldr);
}

dataGrid1.DataSource = V_cldt;

どうでしょうか?

鎌田
常連さん
会議室デビュー日: 2003/09/23
投稿数: 45
投稿日時: 2006-02-10 12:48
>上記のように記述してデータを表示することは出来ました。

Current状態のデータが存在して、Original状態が存在しないのなら、AcceptChangesをしていないからだと思います。

DataGridに表示できる程度の"巨大ではない"件数をDataTableに取得するなら、DataAdapterでFillする方が簡単で手間要らずだと思いますが、SqlDataReaderで1件づつ取り出しているには何か理由があるのですか。
鎌田
常連さん
会議室デビュー日: 2003/09/23
投稿数: 45
投稿日時: 2006-02-10 12:49
().Trim(); が原因?
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 2006-02-10 14:14
お世話になっております。
引用:

Current状態のデータが存在して、Original状態が存在しないのなら、AcceptChangesをしていないからだと思います。

DataGridに表示できる程度の"巨大ではない"件数をDataTableに取得するなら、DataAdapterでFillする方が簡単で手間要らずだと思いますが、SqlDataReaderで1件づつ取り出しているには何か理由があるのですか。



ロード時にAcceptChangesしてあげるとORiginal状態が取れるようになりました。
一件ずつ取り出している理由は変更したデータが直ぐに反映されないように等です。
鎌田
常連さん
会議室デビュー日: 2003/09/23
投稿数: 45
投稿日時: 2006-02-10 14:55
>一件ずつ取り出している理由は変更したデータが直ぐに反映されないように等です。

本題は解決済みなのでトトロさんはもう見ていないかもしれませんが。

DataAdapterを使ってFillしたものであってもDataTableへの更新内容が直ぐにデータベースに反映される訳ではありません。
コードのどこかで.Updateする必要があります。しかもUpdate時に発行するSQL文は、DataAdapterのUpdatecommandで定義する仕組みですから、これを定義していなければ、.Updateしても変更内容はデータベースに反映されません。
キラ
大ベテラン
会議室デビュー日: 2005/12/10
投稿数: 104
投稿日時: 2006-02-10 15:15
いつもお世話になっております。

変更前データの取得の件、ありがとうございました。
DB更新の件は勘違いしていました。
すみません。



[ メッセージ編集済み 編集者: トトロ 編集日時 2006-02-10 15:18 ]

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