Frage

Ich habe eine typisierte Datasets, und wo ich TableAdapter.Update(DataRow) nennen, ausgeführt die SQL enthält eine Aktualisierung der Primärschlüsselspalte der Datenbank.

Leider, wenn dieser Code auf einer replizierten Datenbank ausgeführt wird, die PK-Spalte hat die rowguid Eigenschaft festgelegt, und ich erhalte die folgenden Fehler:

  

System.Data.SqlClient.SqlException: Aktualisieren von Spalten mit der ROWGUIDCOL-Eigenschaft ist nicht erlaubt.   Die Transaktion in dem Trigger beendet. Der Ansatz wird abgebrochen.     bei System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors (RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo [] batchCommands, Int32 Command)     bei System.Data.Common.DbDataA ...

Wie verhindere ich die Tableadapter aus Aktualisierung dieser Spalte (der Wert ist gleich)?

War es hilfreich?

Lösung

Sie können manuell den für den Update-Befehl in dem DataSet Designer erstellt SQL Bearbeiten Sie einfach auf dem Adapter klicken und die UpdateCommand zu finden. Gibt es einen Grund, dass Sie den Primärschlüssel sind zu aktualisieren? Wenn nicht (und Sie sollen nicht sein, wenn überhaupt möglich), dann sollten Sie das von dem Befehl entfernen.

Andere Tipps

Wenn Sie Ihre Spalte tatsächlich als Primärschlüssel in der typisierten DataSet markiert wird die automatische Aktualisierung Anweisung generiert sollte es nicht zu aktualisieren versuchen, zu. Ich würde Blick auf die Designer und überprüfen, dass es tatsächlich der Primärschlüssel ist.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top