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

不幸的是,当此代码在复制数据库上运行时,PK列设置了 rowguid 属性,并且出现以下错误:

  

System.Data.SqlClient.SqlException:不允许使用rowguidcol属性更新列。   交易在触发器中结束。批次已中止。     在System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors(RowUpdatedEventArgs rowUpdatedEvent,BatchCommandInfo [] batchCommands,Int32 commandCount)     在System.Data.Common.DbDataA ...

如何阻止tableadapter更新此列(值是相同的)?

有帮助吗?

解决方案

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

其他提示

如果您的列实际上被标记为键入的DataSet中的主键,则自动生成的更新语句不应尝试更新它。我会看看设计师并仔细检查它实际上是主键。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top