C# 未能启用约束。一个或多个行包含违反非空、唯一或外键约束的值。MyDataset.Tables[0]。合并

C# 未能启用约束。一个或多个行包含违反非空、唯一或外键约束的值。MyDataset.Tables[0]。合并,c#,C#,尝试合并数据集中的表时发生此异常:- (未能启用约束。一行或多行包含违反非null、唯一或外键约束的值。) 代码: 我看了Murat Yıldız评论中的问题,但没有一个答案与我的设置相符。我的代码在Merge方法中也失败。在我的案例中起作用的是这个片段,取自这里: 试试看 { 数据集。合并(另一个数据集); } 捕获(约束异常) { foreach(dataSet.Tables中的DataTable表) { DataRow[]rowErrors=table.GetErrors(); Syste

尝试合并数据集中的表时发生此异常:- (未能启用约束。一行或多行包含违反非null、唯一或外键约束的值。)

代码:


我看了Murat Yıldız评论中的问题,但没有一个答案与我的设置相符。我的代码在
Merge
方法中也失败。在我的案例中起作用的是这个片段,取自这里:

试试看
{
数据集。合并(另一个数据集);
}
捕获(约束异常)
{
foreach(dataSet.Tables中的DataTable表)
{
DataRow[]rowErrors=table.GetErrors();
System.Diagnostics.Debug.WriteLine(table.TableName+“Errors:”+rowErrors.Length);
对于(int i=0;i
您有什么问题吗?异常是自解释的。是否尝试在数据集中添加表?尝试
MyDataset.Tables.Add(dt)希望它能做你正在尝试的事情……)看一看。
MyDataset.Tables[0].Merge(dt, false, MissingSchemaAction.Add);
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));
            }
        }
    }
}