1

我正在尝试使用连接的 ado.net 层对 winform 执行更新操作。

这是代码

                string insertCmdStr = "UPDATE ARTICLE(SecondId,Group,Code,Name) WHERE (ID=@P1)";
                insertCmdStr += "VALUES(@Idd,@group,@code,@name)";
                FbCommand cmd = new FbCommand(insertCmdStr, fbConn, tran);
                cmd.Parameters.AddWithValue("@P1", id);
                cmd.Parameters.AddWithValue("@Idd", idd);
                cmd.Parameters.AddWithValue("@group", group);
                cmd.Parameters.AddWithValue("@code", code);
                cmd.Parameters.AddWithValue("@name", name);    
                cmd.ExecuteNonQuery();

使用这个查询我得到了异常

  • $exception {"动态 SQL 错误\r\nSQL 错误代码 = -104\r\n令牌未知 - 第 1 行,第 15 列\r\n("} System.Exception {FirebirdSql.Data.FirebirdClient.FbException}
4

2 回答 2

2

UPDATE 语句通常构造如下:

UPDATE TABLE
SET Field1 = Value
, Field2 = Value
, Field3 = Value
WHERE ID = Value

因此,您可以使用:

string insertCmdStr = "UPDATE ARTICLE SET SecondId = @Idd, Group = @group, code = @code, name = @name WHERE ID=@P1;"

我还建议更改insertCmdStrupdateCmdStr只是为了澄清你想要实现的目标。

于 2013-07-05T10:11:39.577 回答
1

不应该这样查询:

UPDATE ARTICLE 
SET
    SecondId = @Idd,
    Group = @group,
    Code = @code,
    Name = @name
WHERE ID = @P1
于 2013-07-05T10:14:06.790 回答