- - PR -
[VS.NET2005][C#]DataSetをBindしたTextBoxの入力について
1
| 投稿者 | 投稿内容 |
|---|---|
|
投稿日時: 2007-01-31 16:02
【環境】
OS:WindowsXPPro VS:VS.NET2005 言語:C# AP:Windowsアプリ いつもお世話になっています。 さて、至極単純な話かもしれませんが、下記のような現象に頭を悩ませています。 Project内にDataSetを作成しており、このDataSetをFormに貼り付けています。 Formには、この他にTextBoxも貼り付けてあり、デザイナからプロパティの「DataBindings - (詳細)」から「フォーマットと詳細バインド」を呼出し、「バインド」にDataSetの中のカラムを、「データソース更新モード」に「OnValidation」を指定しています。 上記の状況で、DBから読込んだデータをDataSetにセットした際には、TextBoxに値は反映(表示)されるのですが、その後TextBoxに対して入力を行ってもDataSet側のRowStateは、何故かUnchangedのままでした。 ※ちなみにクイックウォッチで確認した限りでは、DataSet内には入力した値は反映されていました。 データをバインドしたTextBoxに入力をした場合に、DataSet側のRowStateが「Modified」になる事を期待していたのですが・・・。 これって、こういうものなのでしょうか? それとも、何か設定等が足りていませんか? ご存知の方、是非ご教授願います。 |
|
投稿日時: 2007-02-01 16:53
自己レスです。
一応、解決しました。 ポイントは「DataSet.DataTable.DataRow.EndEdit()」でした。 クイックウォッチでDataRow[0][Column]の値を確認して、入力した値が反映されていたので、何故RowStateが変わらないのか疑問だったのですが、DataRow[0][Column, DataRowVersion.Original]の値も、DataRow[0][Column, DataRowVersion.Current]の値も、共に入力前の値だったので、試しにEndEdit()を発行してみたらRowStateがUnchangedからModifiedに変わってくれました。 ご報告までに・・・ |
1
