- - PR -
BindingContextについて
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2004-03-04 10:21
お世話になります。
[VB.NET-Oracle8i-Windows2000] 現在データアダプタとデータセットを利用して画面を作成しており、 新規ボタンを押下すると"列XXXXにNULLを使用することはできません。" とメッセージが出ます。新規ボタンのクリックイベントとしては Try Me.BindingContext(Ds, "Table1").EndCurrentEdit() Me.BindingContext(Ds, "Table1").AddNew() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Exception") End Try と記述しています。 確かにTable1のXXXXはNULLを許可していないのですが Me.BindingContext(Ds, "Table1").AddNew()で新規入力エリア を作っているだけなのに、なぜこのような現象がでるのでしょうか? ご教授お願いいたします。 |
|
投稿日時: 2004-03-04 10:33
これって、2003/12/16 13:52 「未記入」さん投稿のリメーク? ということにしておきます。[ メッセージ編集済み 編集者: じいじ 編集日時 2004-03-04 11:04 ] |
|
投稿日時: 2004-03-04 10:38
お世話になります。
内容はかぶっているかもしれませんが まったくの別人ですので。。。 |
|
投稿日時: 2004-03-04 13:51
AddNewした時点でデータ検証されているからだと思います。
SuspendBindingでデータ連結を中断して データが入力されてからResumeBindingでデータ連結を再開したらだめですか |
|
投稿日時: 2004-03-04 14:10
お世話になります。
ご回答有難うございます。 以下のように新規作成時にSuspendBinding 更新時にResumeBindingとしてみたのですが 同じように"列XXXXにNULLを使用することはできません。" とメッセージが出ます。記述の仕方間違っていますか? -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 新規 Try Me.BindingContext(Ds, "Table1").SuspendBinding() Me.BindingContext(Ds, "Table1").EndCurrentEdit() Me.BindingContext(Ds, "Table1").AddNew() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Exception") End Try -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 更新 Try Me.BindingContext(Ds, "Table1").ResumeBinding() Me.BindingContext(Ds, "Table1").EndCurrentEdit() OleDbDataAdapter.Update(Ds, "Table1") MsgBox("レコードを更新しました", MsgBoxStyle.Information, "情報") Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Exception") End Try -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* |
|
投稿日時: 2004-03-04 14:58
そうなるとテーブルのほうでチェックされていると思われますので
SuspendBinding ResumeBinding を Ds.Table1.BeginLoadData() Ds.Table1.EndLoadData() に置き換えてみてください これでもだめだったら、さらに SuspendBinding ResumeBinding を追加してみてください |
|
投稿日時: 2004-03-04 15:21
お世話になります。
Ds.Table1.BeginLoadData() Ds.Table1.EndLoadData() を適用してみましたが今度は "DataBindingは、すべてのバインドに適切な行を一覧で見つけることができませんでした。" とメッセージが出ました。 ちなみにFormは単票形式です(DataGridは使用していません) また、Form_LoadでOleDbDataAdapter.Fill(Ds,"Table1")しないと ダメですか? -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 新規 Try Ds.Table1.BeginLoadData() Me.BindingContext(Ds, "Table1").EndCurrentEdit() Me.BindingContext(Ds, "Table1").AddNew() Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Exception") End Try -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* 更新 Try Ds.Table1.EndLoadData() Me.BindingContext(Ds, "Table1").EndCurrentEdit() OleDbDataAdapter.Update(Ds, "Table1") MsgBox("レコードを更新しました", MsgBoxStyle.Information, "情報") Catch ex As Exception MsgBox(ex.Message, MsgBoxStyle.Exclamation, "Exception") End Try -*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-*-* |
1