2013-04-15 2 views
1

Я немного ржавый на своем VB.NET, особенно при конвертации в SQL. Я думал, что у меня была простая задача скрыть 2 кнопки, если флажок не установлен. Флажок привязан к столбцу SQL Server с типом данных bit.Преобразование SQL-данных BIT для типа boolean VB.NET

Мой код выглядит следующим образом:

Private Sub CaseVehicleCollisionCheckBox1_CheckedChanged(sender As Object, e As EventArgs) Handles CaseVehicleCollisionCheckBox1.CheckedChanged 
    Dim collision As System.Data.SqlTypes.SqlBinary 
    collision = CaseVehicleCollisionCheckBox1 

    If collision = True Then 
     btnVehicle1.Visible = True 
     btnVehicle2.Visible = True 
    ElseIf collision = False Then 
     btnVehicle1.Visible = False 
     btnVehicle2.Visible = False 
    End If 

End Sub 

я получаю ошибку

Значение 'System.Windows.Forms.CheckBox' типа не могут быть преобразованы в «System.Data.SqlTypes .SqlBinary '

при попытке присвоить флажку переменной.

я получаю ту же ошибку при попытке использовать System.Data.SqlTypes.SqlBoolean

+2

«Флажок привязан к полю SQL» - да? –

+0

Просто используйте Boolean –

+0

@JeremyThompson - те же результаты – jstacy00

ответ

2

Проблема заключается в том вы бросаете контроль CheckBox в SQLBinary типа данных, и что не будет работать.

Я предполагаю, что CaseVehicleCollisionCheckBox1 является именем CheckBox. Вы должны использовать CheckBoxes Checked property, например:

Dim collision As Boolean 
collision = CaseVehicleCollisionCheckBox1.Checked 
+0

Спасибо! это сработало. – jstacy00

+0

@ jstacy00 приветствую вас, рядом с каждым ответом есть галочка рядом с ним, тикание дает вам пару очков и позволяет людям тратить время на устранение неполадок, сообщив им о своей работе. Ура! –

0

Используйте SqlBoolean вместо sqlBinary. sqlBinary представляет собой sql-эквивалент массива байтов.

Смежные вопросы