Comparing data from two data tables
For .net framework 3.5, you can have following code improvements:

foreach (var drRow in table2.Rows.Cast&lt;DataRow&gt;()
                      .Where(drRow =&gt; !table1.Rows.Contains(drRow["KeyId"]))) 
{
    table1.ImportRow(drRow); 
}



part of body can be converted to LINQ-expression
use "var" (implicitly typed) instead of "DataRow" (explicitly typed)