.NET data adapter must implement DataAdapter.ContinueUpdateOnError property in transaction. ContinueUpdateOnError requires that transaction continues after error. In this case .NET can mark all bad rows in DataGrid. User can see all errors together. Unfortunately inside transaction after error PostgreSQL returns message "Current transaction aborted, command ignored after end of transaction block" for all subsequent commands. npgsql does NOT have any support for fix this. It marks ALL subsequent commands as invalid. So npgsql cannot used as reliable .NET data provider. Please confirm this. There are only two ways fix this issue. NpgsqlDataAdapter must invoke automatic ROLLBACK after each error or use checkpoints before each command. Why this is not implemented ? SIDENOTE. In this case PosgreSQL acts like ill-designed compiler or spell checker which hangs on first error. Todays compilers return as many errors as possible. Word spell checker mark all misspelled words in document, not only first one. Using PostgreSQL+npgsql to import or edit large amounts of data having minor errors is huge loss in perfomance since major ADO.NET property is not supported. After each error whole process must started again. Andrus