質問

型指定されたデータセットがあり、 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の主キーとしてマークされている場合、自動生成された更新されたステートメントは更新しようとしてはなりません。デザイナーを見て、それが実際に主キーであることを再確認します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top