在数据表中对现有数据执行复合主键

时间:2014-03-28 06:17:01

标签: c# datatable

我有datatable数据。我想将composite primary key添加到此表(例如2列)并检查数据表中的任何行是否验证了我们设置的复合主键。 我所做的是我已将复合主键添加到数据表

DataColumn[] keys = new DataColumn[2];
keys[0] = dt.Columns["EmpId"];
keys[1] = dt.Columns["EmpName"];
dt.PrimaryKey = keys;

但我无法弄清楚如何检查现有数据并设置各行的RowError。

1 个答案:

答案 0 :(得分:0)

试试这个:

<强> 1&GT;用于设置行错误

private void SetRowErrors(DataTable table)
{
    for(int i = 0; i < 10; i++)
    {
        table.Rows[i].RowError = "ERROR: " 
            + table.Rows[i][1];
    }
    DataSet dataSet = table.DataSet;
    TestForErrors(dataSet);
}

private void TestForErrors(DataSet dataSet)
{
    if(dataSet.HasErrors)
    {
        foreach(DataTable tempDataTable in dataSet.Tables)
        {
            if(tempDataTable.HasErrors) 
                PrintRowErrors(tempDataTable);
        }
        dataGrid1.Refresh();
    }
}

private void PrintRowErrors(DataTable table)
{
    foreach(DataRow row in table.Rows)
    {
        if(row.HasErrors) 
        {
            Console.WriteLine(row.RowError);
        }
    }
}

2&gt;检查复合键违规的现有数据:请参阅下面分享的链接

Check existing data