XpPro+VB2005
お世話になります。
DataSet.HasChangesでデータに変更があったかを判定したいのですが
下記のときTrueになりません。
(1)何も無い空のテーブルに1行新規追加した時
(2)既存のデータを変更したが行移動しなかった時
これは正しい動きなのでしょうか
ヘルプを見ても上記状態時はTrueになるようにしか読み取れません。
それとも何か設定が足りないのでしょうか。
ご教示お願いいたします。
>(2)既存のデータを変更したが行移動しなかった時
についてはSQLサーバー付属の Enterprise Manager でも
Access でもそういう動きをしてますね。
編集中のレコードはセル上でのみ変更されてて、実際の
テーブルの値はレコードを移動するまで変更されません。
そのまま[Esc]キーを押すと変更前の値に戻ったりします。
変更は確定していません。その状態では DataSet のテーブル
(DataTable)の値も変更されていないのでは?
データベースはレコード単位で意味がありますから、更新も
レコード単位なのでは?
>(1)何も無い空のテーブルに1行新規追加した時
は、よく分からないけど。。。
コードでテストした限りでは True を返しました。
これも画面での話ですか?その状態で、実際に DataTable に
レコードが追加されていましたか?
まだ変更が確定されていない状態なのでは?
特攻隊長まるるう様 回答ありがとうございます。
> まだ変更が確定されていない状態なのでは?
ご指摘の通りです。EndEditが抜けていました。
本現象はFormを閉じる時にチェックしたかった処理でした。
数日悩んでいたのですが、掲示板に書き込んだ後にEndEditが抜けていたことに気付きました。
お騒がせしました。
ツイート | ![]() |