我正在尝试在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
。
如果做不到这一点,您可以设置命令生成器的QuotePrefix
和QuoteSuffix
属性,以便对列名进行转义。 在您的情况下,"["和"]"是您可能应该使用的值,即
cb.QuotePrefix = "["
cb.QuoteSuffix = "]"