更新 SQL 命令语法错误 [英] Update SQL command Syntax Error

查看:45
本文介绍了更新 SQL 命令语法错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经检查了一遍又一遍,一遍又一遍地看着它,但不明白它有什么问题.我有这段代码可以使插入工作正常:

I've checked and rechecked and looked over and over at it but can't understand what's wrong with it. I have this code to make the insert that works fine:

cmd.Parameters.Add(new OleDbParameter("@codigo", cal.CodEtiq.ToString()));
cmd.Parameters.Add(new OleDbParameter("@data", cal.Data));
cmd.Parameters.Add(new OleDbParameter("@entidade", cal.EntidadeCal));
cmd.Parameters.Add(new OleDbParameter("@observacao", cal.Observacao));
cmd.Parameters.Add(new OleDbParameter("@certificado", cal.Certificado));
cmd.Parameters.Add(new OleDbParameter("@resultado", cal.Resultado));
cmd.Parameters.Add(new OleDbParameter("@selecionar", cal.Selecionar));
cmd.Parameters.Add(new OleDbParameter("@null", DBNull.Value));

cmd.CommandText = "INSERT INTO [Movimento Ferramentas] " +
                  "(Codigo , [Data saida], [Entidade], [Data Ent], [GT EntT Nº], Estado, [GT Saida Nº], [Observações1], Requesitante, Certificado, Resultado, Seleccionar, [Tipo de Intervenção]) " + // columns
                  "VALUES (@codigo, @data , @entidade, null, null,  'Calibração', null, @observacao, null, @certificado, @resultado,   @selecionar , null)";

现在我有这个更新代码,它不断给我无效参数错误.

And now I have this code for the update that keeps giving me Invalid Arguments error.

cmd.Parameters.Add(new OleDbParameter("@codigo", cal.CodEtiq.ToString()));
cmd.Parameters.Add(new OleDbParameter("@data", cal.Data));
cmd.Parameters.Add(new OleDbParameter("@entidade", cal.EntidadeCal));
cmd.Parameters.Add(new OleDbParameter("@observacao", cal.Observacao));
cmd.Parameters.Add(new OleDbParameter("@certificado", cal.Certificado));
cmd.Parameters.Add(new OleDbParameter("@resultado", cal.Resultado));
cmd.Parameters.Add(new OleDbParameter("@selecionar", cal.Selecionar));
cmd.Parameters.Add(new OleDbParameter("@certificadoAnterior", certificadoAnterior));

cmd.CommandText = "UPDATE SET [Movimento Ferramentas] " +
                  "(Codigo = @codigo, " +
                "[Data saida] = @data, " +
                "[Entidade] = @entidade, " +
                "[Data Ent] = null, " +
                "[GT EntT Nº] = null," +
                "Estado = 'Calibração', " +
                "[GT Saida Nº] = null, " +
                "[Observações1] = @observacao," +
                "Requesitante = null," +
                "Certificado = @certificado, " +
                "Resultado = @resultado, " +
                "Seleccionar = @selecionar," +
                "[Tipo de Intervenção] = null) " +
                "WHERE Certificado = @certificadoAnterior";

那么更新有什么问题?

根据要求,我认为会像下面这样

As requested it'd be something like the following I think

String myCommand = "UPDATE SET [Movimento Ferramentas] (Codigo = @codigo, [Data saida] = @data, [Entidade] = @entidade, [Data Ent] = null, [GT EntT Nº] = null, Estado = 'Calibração', [GT Saida Nº] = null, [Observações1] = @observacao, Requesitante = null, Certificado = @certificado, Resultado = @resultado, Seleccionar = @selecionar, [Tipo de Intervenção] = null) WHERE Certificado = @certificadoAnterior";

推荐答案

更新的语法大致如下:

UPDATE <table name>
SET <list of column expressions>
WHERE <condition>

请注意,列表达式列表周围没有括号.

Note that there are no parentheses around the list of the column expressions.

所以你应该像这样重写你的UPDATE:

So you should rewrite your UPDATE like this:

cmd.CommandText = "UPDATE [Movimento Ferramentas] SET " + // <<== Changed the order
            "Codigo = @codigo, " +                        // <<== Removed (
            "[Data saida] = @data, " +
            "[Entidade] = @entidade, " +
            "[Data Ent] = null, " +
            "[GT EntT Nº] = null," +
            "Estado = 'Calibração', " +
            "[GT Saida Nº] = null, " +
            "[Observações1] = @observacao," +
            "Requesitante = null," +
            "Certificado = @certificado, " +
            "Resultado = @resultado, " +
            "Seleccionar = @selecionar," +
            "[Tipo de Intervenção] = null " +             // <<== Removed )
            "WHERE Certificado = @certificadoAnterior";

这篇关于更新 SQL 命令语法错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆