이것은 데이터베이스에 데이터를 삽입하려고 시도하는 코드 조각입니다. 구문 오류가 발생하지 않았지만 데이터를 제출하지 않았습니다.내 코드에서 예외에 관한 해결책이 필요합니다.
System.Data.OleDb.OleDbException : INSERT INTO 문의 구문 오류
Sub submit(ByVal sender As Object, ByVal e As EventArgs) Dim objConn As New OleDbConnection Dim objCmd As New OleDbCommand Dim strConnString, strSQL As String strConnString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & Server.MapPath("Mydatabase.mdb") & "" strSQL = "INSERT INTO tblRecord (CNIC,Names,City,Address,Number) " & " VALUES " & " ('" & cnic.Text & "','" & name.Text & "','" & city.Text & "','" & postal.Text & "','" & phone.Text & "')" objConn.ConnectionString = strConnString objConn.Open() With objCmd .Connection = objConn .CommandText = strSQL .CommandType = CommandType.Text End With Try objCmd.ExecuteNonQuery() Label1.Text = "Record Inserted Sucessfully." Label1.Visible = True Catch ex As Exception Label1.Visible = True Label1.Text = "Record Cannot Insert" & ex.ToString() End Try objConn.Close() End Sub
이
내가 얻을 예외입니다. System.Data.OleDb.OleDbCommand.ExecuteCommandText에서 System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling (OleDbHResult의 시간)에서 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult
(tagDBPARAMS dbParams, & executeResult 개체)에서(System.Data.OleDb.OleDbCommand.ExecuteCommand (CommandBehavior를 동작에서
, System.Data에서) System.Data.OleDb.OleDbCommand.ExecuteReaderInternal에서
(CommandBehavior를 행동, 문자열 방법)
을 & executeResult 객체 객체 & executeResult). OleDb.OleDbCommand.Execut eNonQuery() ASP.registration_aspx.submit (개체 보낸 사람, 전자 EventArgs입니다) C에서에서
: \ 문서 및 설정 \ 마이 라 ALVI은 \ 내 문서 \ 비주얼 스튜디오 2005 \ 웹 사이트를 설정 \ WEBSITE3 Registration.aspx \ 라인 (32)
SQL Management Studio에서 SQL을 직접 실행하면 어떻게됩니까? –
'INSERT INTO 문에서 구문 오류가 발생했습니다 .' 실행 전에'strSQL'의 값을 확인하십시오. 구문 오류가 있습니다. – Oded
그건 그렇고 -이 코드는 [SQL 주입] (http://en.wikipedia.org/wiki/SQL_injection)에 열려 있습니다. [매개 변수가있는 쿼리] (http://www.codinghorror.com/blog/2005/04/give-me-parameterized-sql-or-give-me-death.html)를 사용해야합니다. 당신도 가지고있는 문제. – Oded