首页 > 解决方案 > vb.net 插入到 accs

问题描述

它说 INSERT INTO 语法错误

Connection.Open()
Query = "INSERT INTO Admin (Username, Password, FullName, Office) Values ('" & TXT_USERNAME.Text & "','" & TXT_PASSWORD.Text & "','" & TXT_NAME.Text & "','" & CB_UNIT.Text & "');"
Command = New OleDbCommand(Query, Connection)
Command.ExecuteNonQuery()

标签: vb.netms-access

解决方案


这种情况下的具体问题是PasswordJet/Access SQL 中的保留字。为了使用保留字作为标识符,您需要对其进行转义。在 Jet/Access SQL 中,这意味着将其括在括号中:

INSERT INTO Admin (Username, [Password], FullName, Office) Values (...)

有些人喜欢逃避所有标识符,只是为了安全起见。

不过那里也有其他问题。最重要的是,您应该学习如何在 ADO.NET 代码中使用参数。就目前而言,如果某人的全名是“John O'Brien”,您的代码会因另一个语法错误而使您的应用程序崩溃。使用参数可以避免单引号、日期和数字格式的问题,最重要的是,可以防止 SQL 注入攻击。立即学习正确的方法。


推荐阅读