2013-06-08 1 views
0

Я пытаюсь вставить значения из формы в мою базу данных. В таблице я объявил Zavrseno как бит типа. Я беру значение Zavrseno из флажка в виде boolean типа в форме. Когда я выполняю запрос, я получаю сообщение об ошибке: «Ошибка конверсии при преобразовании значения varchar« True »в бит типа данных».Visual Basic не может преобразовать бит (MySQL) бит

Dim t1 As DateTime = Me.VrijemePocetkaDateTimePicker.Text 
    Dim t2 As String = Me.Tim1TextBox.Text 
    Dim t3 As String = Me.Tim2TextBox.Text 
    Dim t4 As Boolean = Me.ZavrsenoCheckBox.Checked 

    cmd = New SqlCommand("insert into dbo.Utakmice(VrijemePocetka,Tim1,Tim2,Zavrseno) values(' " & t1 & " ', ' " & t2 & " ' ,' " & t3 & " ' ,' " & t4 &" ')", conn) 

ответ

0

Проблема заключается в Boolean.ToString результаты в «True» или «False», которые являются недопустимые значения для BIT (или целое число) поле - значения бит должен быть 0 или 1 (или сжимаемый к такому).

Чтобы исправить это, use parameters. Использование параметров очистит запрос, предотвратит SQL-инъекцию , и сделать код «просто работать».


SQL инъекция не должна быть злыми: программа сломается, как написано, если пользователь вводит ' в одном из текстовых полей.

+0

Я не знаком с этим. Можете ли вы привести пример моего кода, как он должен выглядеть? –

+0

Спасибо. Я сделал это с параметрами. –

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