ms访问插入错误:条件表达式中的数据类型不匹配

时间:2011-12-20 03:18:45

标签: asp.net vb.net

我已经看了好几个小时了,似乎无法弄清楚导致数据类型不匹配的原因。我试图从asp.net插入到访问数据库

插入声明: (忽略使用concat参数的不良做法)

 Dim BSSQL As String = "insert into bodyshop (startdate, enddate, frontbump, rearbump, touchup, other, vehicleid)" & _
        "values('" & StartDateBodyShopTXT.Text & "','" & FinishDateBodyShopTXT.Text & "','" & FrntBumpCHK.Checked & "','" & RearBumpCHK.Checked & "','" & TouchUpCHK.Checked & "','" & OtherTXT.Text & "','" & insertidvehicle.ToString() & "')"
    Dim cmdinsertintoBS As New OleDbCommand(BSSQL, conn)
    conn.Open()
    cmdinsertintoBS.ExecuteNonQuery() 'error thrown here
    conn.Close()

这是表格的快照:

enter image description here

是/否字段的格式为“true / false”

2 个答案:

答案 0 :(得分:2)

使用parameters代替硬编码的sql字符串。

Dim BSSQL As String = "insert into bodyshop (startdate, enddate, frontbump, rearbump, 
   touchup, other, vehicleid) values (@startdate, @enddate, @frontbump, @rearbump, 
                                      @touchup, @other, @vehicleid)"
Dim cmdinsertintoBS As New OleDbCommand(BSSQL, conn)
cmdinsertintoBS.Parameters.Add("@startdate",OleDbType.VarChar,20).Value=StartDateBodyShopTXT.Text
...

答案 1 :(得分:2)

不要在复选框值周围放置单引号,例如

Dim BSSQL As String = 
    "insert into bodyshop (startdate, enddate, frontbump, rearbump, touchup, other, vehicleid)" 
     & "values ('" & StartDateBodyShopTXT.Text & "','" & FinishDateBodyShopTXT.Text & "'," & _
    FrntBumpCHK.Checked & "," & RearBumpCHK.Checked & "," & TouchUpCHK.Checked & ",'" & _
    OtherTXT.Text & "','" & insertidvehicle.ToString() & "')"