型付きデータセットがPK列を更新しないようにします
-
05-07-2019 - |
質問
型指定されたデータセットがあり、 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
デザイナーで更新コマンド用に作成されたSQLを手動で編集できます。アダプターをクリックして、 UpdateCommand
を見つけます。主キーを更新している理由はありますか?そうでない場合(そして、可能な場合は、そうすべきではありません)、コマンドから削除する必要があります。
他のヒント
列が実際に入力されたDataSetの主キーとしてマークされている場合、自動生成された更新されたステートメントは更新しようとしてはなりません。デザイナーを見て、それが実際に主キーであることを再確認します。