Please try the Following Sample code and change the Code according to your requirement
protected void Page_Load(object sender, EventArgs e)
{
getChangedRecords(CreateTable());
}
public void getChangedRecords(DataTable DtInput)
{
DataTable dtTest = new DataTable("Change");
dtTest.Columns.Add("Fieldname", typeof(String));
dtTest.Columns.Add("RowNo", typeof(String));
dtTest.Columns.Add("FieldValue", typeof(String));
foreach (DataRow item in DtInput.Rows)
{
int index = DtInput.Rows.IndexOf(item);
int iCount = item.ItemArray.Count();
if (index != DtInput.Rows.Count-1)
{
for (int i = 0; i < iCount; i++)
{
if (item[i].ToString() != DtInput.Rows[index + 1][i].ToString())
{
DataRow drTest = dtTest.NewRow();
drTest["Fieldname"] = DtInput.Columns[i].Caption;
drTest["RowNo"] = index;
drTest["FieldValue"] = item[i].ToString();
dtTest.Rows.Add(drTest);
}
}
}
}
}
public DataTable CreateTable()
{
DataTable dtTest = new DataTable("Test");
dtTest.Columns.Add("Col1", typeof(int));
dtTest.Columns.Add("Col2", typeof(String));
dtTest.Columns.Add("Col3", typeof(String));
int iCount = 2;
for (int i = 0; i < iCount; i++)
{
DataRow drTest = dtTest.NewRow();
drTest["Col1"] = i;
drTest["Col2"] = "Name";
drTest["Col3"] = "Vipin" + i;
dtTest.Rows.Add(drTest);
}
return dtTest;
}