2016-09-30 4 views
2

Я привязываю флажок к источнику привязки, если я не поставлю флажок, он вернет пустое значение в мою базу данных.Флажок привязки значения по умолчанию null

Это код привязки:

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

Как вернуть значение по умолчанию ложно?

Привет Энди

+0

Почему не устанавливать значение по умолчанию ложное в БД? – Berkay

+0

Я пробовал, что он все еще устанавливает его как null. –

+1

является 'gehund' нулевым bool? – Crowcoder

ответ

1

Вы можете использовать привязку данных к CheckState собственности таким образом:

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

Таким образом, когда значение поданных в источнике данных имеет нулевое значение, CheckState.Indeterminate будет показан в пользовательском интерфейсе ,

Примечание

  • Если вы хотите по умолчанию значение столбца быть 0 или бесконтрольно, а затем установите DefaultValue из DataColumn в 0.

  • Если вы хотите, чтобы пользователь также установил значение поля в null, достаточно установить значение ThreeState объекта CheckBox в true.

Пример

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 по умолчанию –

+0

Он будет вставлять 1, когда вы нажимаете галочку и устанавливаете флажок. Вставляет 0, когда вы нажимаете и снимаете флажок. Вставляет нулевое значение, когда вы нажимаете и устанавливаете флажок для неопределенности, который показывает квадрат в флажке. –

+0

Чтобы проверить это, просто используйте код, который я привел в примере. Такой код можно просто протестировать без какой-либо базы данных. –