无法启用约束。一行或多行包含违反非null,唯一或外键约束的值。 MyDataset.Tables [0] .Merge

时间:2012-11-22 13:14:07

标签: c#

当我尝试合并数据集中的表时,发生此异常: - (无法启用约束。一行或多行包含违反非空,唯一或外键约束的值。)

代码:

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

1 个答案:

答案 0 :(得分:0)

我看了MuratYıldız评论中的问题,但没有一个答案适用于我的设置。我的代码也在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));
            }
        }
    }
}