gpt4 book ai didi

c# - 更新SQL命令语法错误

转载 作者:行者123 更新时间:2023-12-03 08:13:32 25 4
gpt4 key购买 nike

我已经检查并重新检查,并一遍又一遍地查看它,但是不明白它是怎么了。
我有以下代码可以使插入工作正常:

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)";

现在,我有了此更新代码,不断出现“无效参数”错误。
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";

那么更新有什么问题呢?

编辑:根据要求,我会像以下内容
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>

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

因此,您应该像这样重写 UPDATE:
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";

关于c# - 更新SQL命令语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19767534/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com