2011-12-20 8 views
1

나는 이것을 몇 시간 동안 보았으며 데이터 형식이 일치하지 않는 원인을 파악할 수 없습니다.ms 액세스 삽입 오류 : 조건 식의 데이터 형식이 일치하지 않습니다.

: 여기

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

테이블의 스냅 샷입니다합니다 (CONCAT 매개 변수로 가난한 관행을 무시) : 나는 액세스 데이터베이스

삽입 문 asp.net에서 삽입하려고 enter image description here

예 '의 형식/더 필드는

답변

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() & "')" 
+1

... @AVD가 가리키는 매개 변수가있는 쿼리를 사용하십시오. –

2

사용"참/거짓"입니다210 하드 코딩 된 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 
... 
관련 문제