2012-11-22 14 views
0

當我試圖合併表中的數據集這個例外發生: - (無法啓用約束。一行或多行包含違反非空,唯一或外鍵約束。)無法啓用約束。一行或多行包含違反非空,唯一或外鍵約束的值。 MyDataset.Tables [0] .Merge

代碼:

MyDataset.Tables[0].Merge(dt, false, MissingSchemaAction.Add); 
+2

您有問題要問?例外是不言自明的。試圖在數據集中添加表的 –

+0

?嘗試'MyDataset.Tables.Add(dt);'希望它會做你正在嘗試的...... :) – Sami

+0

看看[無法啓用約束。一行或多行包含違反非空,唯一或外鍵約束的值](http://stackoverflow.com/questions/7026566/failed-to-enable-constraints-one-or-more-rows-contain-值違規,非空)。 –

回答

0

我看着在穆拉特Yildiz的評論的問題,但沒有答案與我的設置工作。我的代碼在Merge方法上也失敗了。在我的情況下工作的是這個片段,取自這裏:http://www.codeproject.com/Tips/405938/Debugging-DataSet-Constraint-Errors

try 
{ 
    dataSet.Merge(anotherDataSet); 
} 
catch (ConstraintException) 
{ 
    foreach (DataTable table in dataSet.Tables) 
    { 
     DataRow[] rowErrors = table.GetErrors(); 

     System.Diagnostics.Debug.WriteLine(table.TableName + " Errors:" + rowErrors.Length); 

     for (int i = 0; i < rowErrors.Length; i++) 
     { 
      System.Diagnostics.Debug.WriteLine(rowErrors[i].RowError); 

      foreach (DataColumn col in rowErrors[i].GetColumnsInError()) 
      { 
       System.Diagnostics.Debug.WriteLine(col.ColumnName + ":" + rowErrors[i].GetColumnError(col)); 
      } 
     } 
    } 
} 
相關問題