使用OleDbCommandBuilder时访问SQL语法错误

阿德南·乌默(Adnan umer)

我打算在C#中使用OleDbDataAdapter在Access数据库中插入数据,但是在INSERT INTO命令中出现消息语法错误的错误

BackgroundWorker worker = new BackgroundWorker();
OleDbDataAdapter dbAdapter new OleDbDataAdapter();
OleDbConnection dbConnection = new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=E:\\PMS.mdb");
worker = new BackgroundWorker();
worker.WorkerReportsProgress = true;
worker.DoWork += InsertJob;
worker.ProgressChanged += InsertJobCompleted;
worker.RunWorkerAsync(args);

而InsertJob函数是:

private void InsertJob(object sender, DoWorkEventArgs e)
{
     var args = (InsertJobArgs)e.Argument;
     try
        {
            dbAdapter.SelectCommand = new OleDbCommand("SELECT * FROM Sheet", dbConnection);                
            dbAdapter.Fill(args.DataTable);
            var builder = new OleDbCommandBuilder(dbAdapter);
            var row = args.DataTable.NewRow();

            row["UserName"] = args.Entry.UserName;
            row["Password"] = args.Entry.Password;
            args.DataTable.Rows.Add(row);

            dbAdapter.InsertCommand = builder.GetInsertCommand();               
            dbAdapter.Update(args.DataTable);
            builder.Dispose();
        }
        catch (Exception ex)
        {
            args.Exception = ex;
            worker.ReportProgress(0, args);
            return;
        }
        worker.ReportProgress(100, args);
}

我在网上收到错误消息: dbAdapter.Update(args.DataTable);

我尝试使用Visual Studio对其进行调试,发现所有InsertCommand参数值均为 null

我试图在调用之前通过此代码手动插入 dbAdapter.Update(args.DataTable);

dbAdapter.InsertCommand.Parameters[0].Value = args.Entry.UserName;
dbAdapter.InsertCommand.Parameters[1].Value = args.Entry.Password;
戈德·汤普森

尝试这个:

行后立即

var builder = new OleDbCommandBuilder(dbAdapter);

加两行

builder.QuotePrefix = "[";
builder.QuoteSuffix = "]";

这将告诉OleDbCommandBuilder将表名和列名包装在方括号中,从而产生INSERT命令,例如

INSERT INTO [TableName] ...

而不是默认形式

INSERT INTO TableName ...

如果任何表名或列名包含空格或“有趣”字符,或者在Access SQL中碰巧它们是保留字,则必须使用方括号。(在您的情况下,我怀疑您的表具有名为[Password]的列,并且PASSWORD是Access SQL中的保留字。)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

使用Join时访问语法错误

来自分类Dev

使用PDO和SQL Server插入日期时出现“语法错误或访问冲突”

来自分类Dev

使用PDO和SQL Server插入日期时出现“语法错误或访问冲突”

来自分类Dev

OleDbCommandBuilder生成的INSERT INTO语句中的语法错误

来自分类Dev

OleDbCommandBuilder生成的INSERT INTO语句中的语法错误

来自分类Dev

在更改表语法错误或访问冲突时:1064 您的 sql 语法有错误;

来自分类Dev

访问列表时的语法错误

来自分类Dev

语法错误或访问冲突php sql

来自分类Dev

使用剩余计数时的SQL WHERE语句语法错误

来自分类Dev

使用原始 SQL SELECT 命令时出现语法错误

来自分类Dev

在 sql 查询中使用 LIKE 时出现语法错误

来自分类Dev

插入表时 SQL 语法错误

来自分类Dev

在 yii2 中运行原始 SQL 时获取 SQL 查询语法错误或访问冲突

来自分类Dev

使用存储过程时出现Laravel 7错误:-SQLSTATE [42000]:语法错误或访问冲突:1064

来自分类Dev

尝试在sql中声明变量并使用if-else语句时出现语法错误。-“ VARCHAR”或附近的语法错误

来自分类Dev

使用Lambda函数时的语法错误

来自分类Dev

使用视图时的语法错误

来自分类Dev

使用ifstream时的语法错误

来自分类Dev

查询包含多个JOIN时访问SQL语法错误(缺少运算符)

来自分类Dev

查询包含多个JOIN时访问SQL语法错误(缺少运算符)

来自分类Dev

SQL错误[42601]:错误:“ \”或附近的语法错误位置:使用\ copy时为1

来自分类Dev

使用UPDATE的语法错误SQL查询

来自分类Dev

使用INSERT INTO的SQL查询语法错误

来自分类Dev

使用CREATE TABLE的SQL语法错误

来自分类Dev

使用外键的SQL语法错误

来自分类Dev

使用休眠的SQL语法错误

来自分类Dev

使用vb .net更改ms访问表时在字段定义中获取语法错误

来自分类Dev

在查询表达式中使用iif时访问中的语法错误

来自分类Dev

AS的SQL语法错误

Related 相关文章

  1. 1

    使用Join时访问语法错误

  2. 2

    使用PDO和SQL Server插入日期时出现“语法错误或访问冲突”

  3. 3

    使用PDO和SQL Server插入日期时出现“语法错误或访问冲突”

  4. 4

    OleDbCommandBuilder生成的INSERT INTO语句中的语法错误

  5. 5

    OleDbCommandBuilder生成的INSERT INTO语句中的语法错误

  6. 6

    在更改表语法错误或访问冲突时:1064 您的 sql 语法有错误;

  7. 7

    访问列表时的语法错误

  8. 8

    语法错误或访问冲突php sql

  9. 9

    使用剩余计数时的SQL WHERE语句语法错误

  10. 10

    使用原始 SQL SELECT 命令时出现语法错误

  11. 11

    在 sql 查询中使用 LIKE 时出现语法错误

  12. 12

    插入表时 SQL 语法错误

  13. 13

    在 yii2 中运行原始 SQL 时获取 SQL 查询语法错误或访问冲突

  14. 14

    使用存储过程时出现Laravel 7错误:-SQLSTATE [42000]:语法错误或访问冲突:1064

  15. 15

    尝试在sql中声明变量并使用if-else语句时出现语法错误。-“ VARCHAR”或附近的语法错误

  16. 16

    使用Lambda函数时的语法错误

  17. 17

    使用视图时的语法错误

  18. 18

    使用ifstream时的语法错误

  19. 19

    查询包含多个JOIN时访问SQL语法错误(缺少运算符)

  20. 20

    查询包含多个JOIN时访问SQL语法错误(缺少运算符)

  21. 21

    SQL错误[42601]:错误:“ \”或附近的语法错误位置:使用\ copy时为1

  22. 22

    使用UPDATE的语法错误SQL查询

  23. 23

    使用INSERT INTO的SQL查询语法错误

  24. 24

    使用CREATE TABLE的SQL语法错误

  25. 25

    使用外键的SQL语法错误

  26. 26

    使用休眠的SQL语法错误

  27. 27

    使用vb .net更改ms访问表时在字段定义中获取语法错误

  28. 28

    在查询表达式中使用iif时访问中的语法错误

  29. 29

    AS的SQL语法错误

热门标签

归档