Форма
У меня есть флажок, связанный с битовым полем в базе данных SQL. Поле определяется как Active_Ind (бит, а не ноль). Элемент управления имеет флажок, AutoCheck = false, Checked = True, CheckedState = Checked. Когда форма отображается, элемент управления проверяется. Когда я нажимаю на иконку сохранения на панели навигации. Я остановил код и проверено состояние. Но когда я получаю код обновления, я получаю сообщение об ошибке
"Дополнительная информация: невозможно вставить значение NULL в столбец 'Active_Ind', таблица 'LazerMaintenance.dbo.Operators'; столбец не допускает нулевые значения. INSERT завершается ошибкой."
Я искал в Интернете несколько дней, но не нашел прямого ответа, который сработал.
Private Sub OperatorsBindingNavigatorSaveItem_Click(sender As Object, e As EventArgs) Handles OperatorsBindingNavigatorSaveItem.Click
Me.Validate()
Me.OperatorsBindingSource.EndEdit()
If IsNothing(ckbActive_Ind) Then
<-- here the checkbox is checked
End If
Me.TableAdapterManager.UpdateAll(Me.LazerMaintenanceDataSet)
End Sub
Источник привязки:
Me.ckbActive_Ind.DataBindings.Add (New System.Windows.Forms.Binding («CheckState», Me.OperatorsBindingSource, «Active_Ind», True, System.Windows.Forms.DataSourceUpdateMode.OnValidation, «1»))
Где-то между тем, когда я нажимаю на кнопку сохранения, и она пытается сохранить поле, обнуляется. Это из-за типа данных? Что мне нужно сделать, так это установить флажок по умолчанию active_Ind (True, 1) при добавлении нового сотрудника и сохранении его в базе данных.
Это работает, пока пользователь проверяет флажок. Если в свойствах установлен флажок «Истина», значение Null будет равно *.