2016-09-30 15 views
2

私はバインディングソースにチェックボックスをデータバインドしています。チェックボックスをクリックしないと、データベースにnull値が返されます。チェックボックスデータバインディングのデフォルト値null

これは、データバインディングコードです:

checkGehuwd.DataBindings.Add("Checked", PersonenBindingSource, "gehuwd", true, 
      DataSourceUpdateMode.OnPropertyChanged); 

は、どのように私は、偽のデフォルトの値を返すのですか?データソースに提出された値がnullであるとき、CheckState.IndeterminateはUIに表示されます、この方法で

checkBox1.DataBindings.Add("CheckState", bs, "DataFieldName", true, 
    DataSourceUpdateMode.OnPropertyChanged, CheckState.Indeterminate); 

:あなたはCheckStateプロパティに、このようにデータ・バインディングを使用することができます

挨拶アンディ

+0

デシベルで偽のデフォルト値を設定しないのはなぜ? – Berkay

+0

まだそれをnullに設定しようとしました。 –

+1

は 'gehund'でヌルブルブールですか? – Crowcoder

答えて

1

  • あなたは、列のデフォルト値は0またはオフなりたい場合は、0DataColumnDefaultValueを設定します。

  • フィールドの値もnullに設定する場合は、ThreeStateプロパティをCheckBoxに設定するだけで十分です。

dt = new DataTable(); 
var c1 = dt.Columns.Add("C1", typeof(int)); 
c1.AllowDBNull = true; 

//Uncomment the next statement if you want default value be 0 = unchecked 
//c1.DefaultValue = 0; 

//Uncomment the next statement if you want to allow the user to set value to null 
//checkBox1.ThreeState = true; 

var bs = new BindingSource(); 
bs.DataSource = dt; 
checkBox1.DataBindings.Add("CheckState", bs, "C1", true, 
    DataSourceUpdateMode.OnPropertyChanged, CheckState.Indeterminate); 
this.bindingNavigator1.BindingSource = bs; 
+0

CheckState.trueをデフォルトとして設定していても、これをクリックしていないときもnullが挿入されます –

+0

チェックマークをクリックしてチェックマークを表示するときに1を挿入します。クリックしてチェックを外すと0が挿入されます。クリックするとnullを挿入し、チェックボックスをチェックボックスに四角形を示す不確定に設定します。 –

+0

これをテストするには、例のコードを使用します。このようなコードは、データベースを必要とせずに簡単にテストできます。 –

関連する問題