Risolto:
Il codice generato in automatico è il seguente (riporto solo quello per la modifica, ma è tutto uguale anche per la altre operazioni):
Codice PHP:
UpdateCommand="UPDATE [tipologia_lavoro]
SET
[tipologia] = @tipologia, [descrizione] = @descrizione
WHERE
[cod] = @original_cod AND [tipologia] = @original_tipologia AND [descrizione] = @original_descrizione">
come potete vedere nella clausola WHERE sono presenti tutti i campi della tabella. Quando li trovava = null la query non funzionava. Essendo il campo cod univoco, ho lasciato solamente quello nel WHERE e ora pare funzionare tutto correttamente.