代码之家  ›  专栏  ›  技术社区  ›  Neil Barnwell

阻止类型化数据集更新pk列

  •  0
  • Neil Barnwell  · 技术社区  · 15 年前

    我有一个类型化的数据集,在这里我调用 TableAdapter.Update(DataRow) ,执行的SQL包含数据库的主键列的更新。

    不幸的是,当此代码在复制的数据库上运行时,pk列具有 rowguid 属性集,我得到以下错误:

    system.data.sqlclient.sqlException:不允许使用rowguidcol属性更新列。 事务在触发器中结束。批处理已中止。 at system.data.common.dbdataadapter.updatedRowStateUserRors(rowUpdatedEventArgs rowUpdatedEvent,batchCommandInfo[]batchCommands,int32 commandCount) 在system.data.common.dbdataa…

    如何阻止TableAdapter更新此列(值相同)?

    2 回复  |  直到 12 年前
        1
  •  2
  •   Adam Robinson    15 年前

    您可以在中手动编辑为update命令创建的SQL。 DataSet 设计师只需点击适配器并找到 UpdateCommand . 是否有原因要更新主键?如果没有(如果可能的话,你也不应该),那么你应该从命令中删除它。

        2
  •  0
  •   Gratzy    15 年前

    如果您的列实际标记为类型化数据集中的主键,则自动生成的更新语句不应尝试更新它。我会看一下设计师,然后再次确认它实际上是主键。