>.NET moans about non-null, unique or foreign key constraints.
Only because your DataSet has set these constraints. It doesn't have to be this way ... that was the point I was making earlier. You can read the data into a DataSet that doesn't have these constraints if you wish to tweak the data first.