使用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

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

来自分类Dev

使用UPDATE的语法错误SQL查询

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

使用Lambda函数时的语法错误

来自分类Dev

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

来自分类Dev

AS的SQL语法错误

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

访问列表时的语法错误

来自分类Dev

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

来自分类Dev

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

来自分类Dev

使用Join时访问语法错误

来自分类Dev

使用视图时的语法错误

来自分类Dev

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

来自分类Dev

使用ifstream时的语法错误

来自分类Dev

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

来自分类Dev

使用CREATE TABLE的SQL语法错误

来自分类Dev

使用外键的SQL语法错误

来自分类Dev

语法错误或访问冲突php sql

来自分类Dev

使用休眠的SQL语法错误

来自分类Dev

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

来自分类Dev

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

来自分类Dev

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

来自分类Dev

插入表时 SQL 语法错误

来自分类Dev

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

来自分类Dev

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

Related 相关文章

  1. 1

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

  2. 2

    使用UPDATE的语法错误SQL查询

  3. 3

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

  4. 4

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

  5. 5

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

  6. 6

    使用Lambda函数时的语法错误

  7. 7

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

  8. 8

    AS的SQL语法错误

  9. 9

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

  10. 10

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

  11. 11

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

  12. 12

    访问列表时的语法错误

  13. 13

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

  14. 14

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

  15. 15

    使用Join时访问语法错误

  16. 16

    使用视图时的语法错误

  17. 17

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

  18. 18

    使用ifstream时的语法错误

  19. 19

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

  20. 20

    使用CREATE TABLE的SQL语法错误

  21. 21

    使用外键的SQL语法错误

  22. 22

    语法错误或访问冲突php sql

  23. 23

    使用休眠的SQL语法错误

  24. 24

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

  25. 25

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

  26. 26

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

  27. 27

    插入表时 SQL 语法错误

  28. 28

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

  29. 29

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

热门标签

归档