这是我继续犯的错误。
System.Data.dll中出现'System.Data.OleDb.OleDbException'类型的异常,但未在用户代码中处理
附加信息:INSERT INTO语句中的语法错误。
这是VB代码:
Imports System
Imports System.Data
Imports System.Data.OleDb
Imports System.Data.SqlClient
Partial Class _Default
Inherits System.Web.UI.Page
Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles
Button1.Click
Dim conn As New
OleDb.OleDbConnection("Provider=Microsoft.ACE.OleDb.12.0;Data Source=" +
Server.MapPath("~/Access1/Connect.accdb"))
Dim sql As String = "INSERT INTO Contacts( FullName, Password ) VALUES(
@FullName, @Password )"
Dim cmd As New OleDb.OleDbCommand(sql, conn)
cmd.Parameters.AddWithValue("@FullName", TextBox1.Text)
cmd.Parameters.AddWithValue("@Password", TextBox2.Text)
conn.Open()
cmd.ExecuteNonQuery()
cmd.Dispose()
conn.Close()
End Sub
End Class
这是Access: enter image description here
答案 0 :(得分:0)
正如peterG所提到的,密码是保留的。将所有字段名称放在方括号中是好的做法(尽管我不记得Access是否允许您使用方括号)以避免这样的问题(至少从我的实践中),在我看来它看起来更清洁一些。