【发布时间】:2013-01-09 18:34:59
【问题描述】:
这是我尝试将数据插入数据库的一段代码。我没有收到任何语法错误,但它没有提交数据。
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.OleDbException:INSERT INTO 语句中的语法错误。
在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
在 System.Data.OleDb.OleDbCommand.ExecuteCommandTextForSingleResult(tagDBPARAMS dbParams, Object& executeResult) 在 System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
在 System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior 行为,对象和执行结果)
在 System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior 行为,字符串方法)
在 System.Data.OleDb.OleDbCommand.ExecuteNonQuery()
在 C:\Documents and Settings\Maira Alvi\My Documents\Visual Studio 2005\WebSites\WebSite3\Registration.aspx:line 32 中的 ASP.registration_aspx.submit(Object sender, EventArgs e)
【问题讨论】:
-
直接在 SQL Management Studio 中运行 SQL 会发生什么?
-
Syntax error in INSERT INTO statement.。在执行之前检查strSQL的值。你确实有语法错误。 -
顺便说一句 - 此代码对 SQL Injection 开放。您应该使用parameterized queries,这也可能会纠正您遇到的问题。
-
想想如果您的输入之一包含
'...
标签: asp.net .net asp.net-mvc