0

我正在尝试将表单中的值插入到我的数据库中。在表中,我已将 Zavrseno 声明为位类型。我从复选框中获取 Zavrseno 值作为表单中的布尔类型。当我执行查询时出现错误:“将 varchar 值 ' True ' 转换为数据类型位时转换失败。”

    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)
4

1 回答 1

0

问题是Boolean.ToString导致“True”或“False”,它们是BIT(或整数)字段的无效值- BIT 值应为 0 或 1(或强制为此类)。

要解决此问题,请使用参数。使用参数将清理查询,防止 SQL 注入1并使代码“正常工作”。


1 SQL 注入不一定是恶意的:如果用户输入'其中一个文本字段,程序将按原样中断。

于 2013-06-08T11:29:20.810 回答