System.Data.OleDb.OleDbException: 'Syntax error in INSERT INTO statement.'



我正在尝试在Visual basic中创建创建按钮,以便记录进入我的数据库,但出现此错误:

System.Data.OleDb.OleDbException: 'INSERT INTO 语句中的语法错误。

我的代码在这里,我收到错误da.Update(ds, "Test")

Dim cb As New OleDb.OleDbCommandBuilder(da)
Dim dsNewRow As DataRow
dsNewRow = ds.Tables("Test").NewRow()
dsNewRow.Item("Username") = txtUsername.Text
dsNewRow.Item("Password") = txtPassword.Text
dsNewRow.Item("Email Address") = txtEmailAddress.Text
ds.Tables("Test").Rows.Add(dsNewRow)
da.Update(ds, "Test")

任何帮助都会很棒。

当命令生成器发生此错误时,通常是因为一个或多个列名是保留字或包含空格或其他特殊字符。 在您的情况下,您有一个可能是保留字的东西,即Password,也是Email Address中的一个空格。

第一个选择选项应该是避免使用此类列名。 在这种情况下,Email Address应该是EmailAddress的,就像您在 VB 中用于标识符一样。Password不一定有明显的替代方案,除了密码几乎不应该以明文形式存储,因此真正的应用程序应该散列密码,然后将该列命名为PasswordHash

如果做不到这一点,您可以设置命令生成器的QuotePrefixQuoteSuffix属性,以便对列名进行转义。 在您的情况下,"["和"]"是您可能应该使用的值,即

cb.QuotePrefix = "["
cb.QuoteSuffix = "]"

相关内容

  • 没有找到相关文章

最新更新