Impossibile attivare i vincoli. Una o più righe contengono valori che violano il vincolo non-null, unique o foreign-key.


Quando si ha a che fare con i dataSet o dataTable tipizzati, si può ricevere l’errore (all’atto della select):

“Impossibile attivare i vincoli. Una o più righe contengono valori che violano il vincolo non-null, unique o foreign-key.”

o anche la sua versione inglese

“Failed to enable constraints. One or more rows contain values violating non-null, unique, or foreign-key constraints”

Senza nessun’altra indicazione. Ma c’è un modo per sapere qual’è la colonna in errore e qual’è esattamente la violazione. Basta iterare sulla collezione GetErrors, presente sul datatable. Ad esempio (VB.NET):

Try
   Me.Adapter.Fill(dataTable)
Catch ex As Exception
   Dim err As DataRow() = dataTable.GetErrors
   Dim msg As New StringBuilder
   For Each e In err
       msg.AppendLine(e.RowError)
   Next
End Try

In questo modo la variabile msg conterrà tutte le colonne con un errore e il tipo di errore.