Pergunta

Eu tenho um dataset tipado, e onde eu chamo TableAdapter.Update(DataRow), o SQL executado inclui uma atualização da coluna de chave primária do banco de dados.

Infelizmente, quando esse código é executado em um banco de dados replicado, a coluna PK tem o conjunto de propriedades rowguid, e eu recebo o seguinte erro:

System.Data.SqlClient.SqlException: Atualizando colunas com a propriedade ROWGUIDCOL não é permitido. A transação terminou no gatilho. O lote foi abortada. em System.Data.Common.DbDataAdapter.UpdatedRowStatusErrors (RowUpdatedEventArgs rowUpdatedEvent, BatchCommandInfo [] batchCommands, Int32 commandCount) em System.Data.Common.DbDataA ...

Como posso evitar que o TableAdapter de atualizar esta coluna (o valor é o mesmo)?

Foi útil?

Solução

Você pode editar manualmente o SQL criado para o comando de atualização no designer DataSet Basta clicar no adaptador e encontrar o UpdateCommand. Existe uma razão que você está atualizando a chave primária? Se não (e você não deve ser, se possível), então você deve remover a partir do comando.

Outras dicas

Se a sua coluna está realmente marcado como a chave primária no DataSet digitado o auto gerado declaração atualizada não deve estar tentando atualizá-lo. Eu olhava para o designer e verifique que na verdade é a chave primária.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top