2014-04-10 9 views
-2
sql = "insert into reservation (train_no,trainame,from,to,name1,age) values(" & 
     Val(lbl3.Caption) & ",' " & lbl4.Caption & "','" & findtrain.srce.Text & 
     "','" & findtrain.dstn.Text & "','" & Form3.Text1.Text & "'," & 
     Val(Form3.Text3.Text) & ")" 

여기서 구문 오류는 무엇입니까?Visual Basic 6을 사용하는 SQL 데이터베이스

+0

시퀀스 '& ",'"& '는 작은 따옴표 (공백 앞에 오는 공백)가 없어야합니다. 그러나 이것은 통사 문제가 아닙니다. 'Val (lbl3.Caption)'또는'Val (Form3.Text3.Text)'를 따옴표로 묶지 않는다. SQL 주입에 대해 걱정해야합니다. –

+1

MsgBox에서'sql'의 내용을 보여주는 라인을 추가하여 구문이 만들어진 후 최종 결과물을 확인하십시오. –

+1

작성한 내용을 감안할 때 구문 오류가 표시되지는 않지만 * 문에 포함 된 값으로 인해 구문 오류가 발생할 수 있습니다. 문자열 중 하나에서 아포스트로피 (작은 따옴표)를 사용하면 구문이 엉망이됩니다. –

답변

0

ADO에서 매개 변수를 사용하지 않는 이유는 무엇입니까? 디버깅이 더 쉬울 것입니다.

Public Function Insert(ByVal Values As String) As Integer 
    Dim sCon As String = ConnectionString() 
    Dim sel As String 

    sel = "INSERT INTO " & NombreTabla & _ 
     "(Columns) " & _ 
     "VALUES " & _ 
     "(@Params) " & _ 
     "SELECT @@Identity" 

    Using con As New SqlConnection(sCon) 
     Dim cmd As New SqlCommand(sel, con) 
     cmd.Parameters.AddWithValue("@Params", Values) 


     con.Open() 
     Dim t As Integer = CInt(cmd.ExecuteScalar()) 
     con.Close() 

     Return t 
    End Using 
End Function 
관련 문제