使用已连接的ado.net图层更新数据

时间:2013-07-05 10:07:04

标签: c# .net sql winforms

我正在尝试使用连接的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 \ n(”} System.Exception   {FirebirdSql.Data.FirebirdClient.FbException}
  •   

2 个答案:

答案 0 :(得分: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;"

我还建议将insertCmdStr更改为updateCmdStr,以澄清您要实现的目标。

答案 1 :(得分:1)

不应该像这样查询:

UPDATE ARTICLE 
SET
    SecondId = @Idd,
    Group = @group,
    Code = @code,
    Name = @name
WHERE ID = @P1