<p>How can I find out which column and value is violating the constraint? The exception message isn't helpful at all:</p>

<blockquote>
  <p>Failed to enable constraints. One or
  more rows contain values violating
  non-null, unique, or foreign-key
  constraints.</p>
</blockquote>

There is a property called RowError you can check.
See
http://dotnetdebug.net/2006/07/16/constraintexception-a-helpful-tip/
Edited to add this link showing iteration of rows to see which had errors.
http://www.devnewsgroups.net/group/microsoft.public.dotnet.framework.adonet/topic58812.aspx