Generating a table of differences between two dictionaries for (int i = 0; i &lt; keyList.Count; i++)
{
    if (oldDic.ContainsKey(keyList[i].ToString()))
    {
        if (newDic[keyList[i].ToString()].ToString() == oldDic[keyList[i].ToString()].ToString())
        {
            //ReminderBackupLog("Same");
        }
        else
        {
            isChnagedSectionFields = "Yes";
            string oldValue = oldDic[keyList[i].ToString()].ToString();
            string newValue = newDic[keyList[i].ToString()].ToString();
            table = table + "&lt;tr style='border: 1px solid black;'&gt;&lt;td style='border: 1px solid black;'&gt;" + colNames[keyList[i].ToString()].ToString() + "&lt;/td&gt;&lt;td style='border: 1px solid black;'&gt;" + oldValue + "&lt;/td&gt;&lt;td style='border: 1px solid black;'&gt;" + newValue + "&lt;/td&gt;&lt;/tr&gt;";
        }
    }
    else
    {
        isChnagedSectionFields = "Yes";
        string newValues = newDic[keyList[i].ToString()].ToString();
        table = table + "&lt;tr style='border: 1px solid black;'&gt;&lt;td style='border: 1px solid black;'&gt;" + colNames[keyList[i].ToString()].ToString() + "&lt;/td&gt;&lt;td style='border: 1px solid black;'&gt;" + " " + "&lt;/td&gt;&lt;td style='border: 1px solid black;'&gt;" + newValues + "&lt;/td&gt;&lt;/tr&gt;";
    }
}
You should separate the logic from your representation and first collect those differences in a separate list. Also, what are the types of your dictionaries? All those ToString()s make it really noisy and are likely not necessary. Furthermore, use a foreach loop to iterate through your key list, this will also automatically get rid of all those keyList[i] accesses. And finally, instead of appending to a string directly, use a StringBuilder to make it more efficient:

// Use a separate type to collect your diffs
class DiffEntry
{
    public string ColumnName { get; set; }
    public string OldValue { get; set; }
    public string NewValue { get; set; }
}

// collect all diffs
List&lt;DiffEntry&gt; diffs = new List&lt;DiffEntry&gt;();
foreach (string key in keyList)
{
    if (oldDic.ContainsKey(key))
    {
        if (newDic[key] != oldDic[key])
        {
            diffs.Add(new DiffEntry()
            {
                ColumnName = colNames[key],
                OldValue = oldDic[key],
                newValue = newDic[key]
            });
        }
    }
    else
    {
        diffs.Add(new DiffEntry()
        {
            ColumnName = newDic,
            NewValue = newDic[key]
        });
    }
}

// generate the actual table output
StringBuilder tableContent = new StringBuilder();
foreach (DiffEntry diff in diffs)
{
    tableContent.Append("&lt;tr style='border: 1px solid black;'&gt;");
    tableContent.Append("&lt;td style='border: 1px solid black;'&gt;");
    tableContent.Append(diff.ColumnName);
    tableContent.Append("&lt;/td&gt;&lt;td style='border: 1px solid black;'&gt;");
    tableContent.Append(diff.OldValue);
    tableContent.Append("&lt;/td&gt;&lt;td style='border: 1px solid black;'&gt;");
    tableContent.Append(diff.NewValue);
    tableContent.Append("&lt;/td&gt;&lt;/tr&gt;");
}
table += tableContent.ToString();