我已经看了好几个小时了,似乎无法弄清楚导致数据类型不匹配的原因。我试图从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()
这是表格的快照:
是/否字段的格式为“true / false”
答案 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() & "')"