public string CompareTwoDataTable(DataTable dt1, DataTable dt2)
{
string bothequal = "";
if (dt1.Columns.Count == 9 && dt2.Columns.Count == 9)
{
dt1.Columns.RemoveAt(4); // remove time column
dt2.Columns.RemoveAt(4); // remove time column
int dt1rows = dt1.Rows.Count;
int dt2rows = dt2.Rows.Count;
int dt1columns = dt1.Columns.Count;
int dt2columns = dt2.Columns.Count;
int secondcount = 0;
int firstcount = 0;
ArrayList firstarray = new ArrayList(); // from centre and can contain duplicate
ArrayList second = new ArrayList(); // to fill table from database
ArrayList first = new ArrayList(); // to fill table from from file upload by bank
if ((dt1rows <= dt2rows) && (dt1columns == dt2columns)) // fill arraylist from file to compare
{
foreach (DataRow vdr in dt1.Rows)
{
string rowvalue = "";
for (int h = 0; h < dt1columns; h++)
{
if (h == 3)
{
int ddnumber = Convert.ToInt32(vdr[h].ToString()); // to avoid extra zeros in front
rowvalue += ddnumber.ToString() + "---";
}
else
{
rowvalue += vdr[h].ToString() + "---";
}
}
firstarray.Add(rowvalue);
}
// remove duplicates if any present from file
foreach (string aString in firstarray)
{
if (!first.Contains(aString))
{
first.Add(aString);
}
}
firstcount = first.Count;
// fill arraylist from database to compare
foreach (DataRow vdr in dt2.Rows)
{
string rowvalue = "";
for (int h = 0; h < dt1columns; h++)
{
if (h == 3)
{
int ddnumber = Convert.ToInt32(vdr[h].ToString()); // to avoid extra zeros in front
rowvalue += ddnumber.ToString() + "---";
}
else
{
rowvalue += vdr[h].ToString() + "---";
}
}
second.Add(rowvalue);
}
secondcount = second.Count;
}
if (firstcount.ToString() == "0")
{
bothequal = "Either File is tampered or invalid File or Empty File !!";
}
else if (firstarray.Count.ToString() != firstcount.ToString())
{
bothequal = "File Contains Duplicate Rows or File is tempered !!";
}
else
{
// check for content same
if (firstcount.ToString() != "0" && secondcount.ToString() != "0")
{
foreach (string ss in first)
{
if (!second.Contains(ss))
{
ArrayList errorrow = new ArrayList(); // record errored row from file as it mismatch
string errorstring = ss.Replace("---", "$");
char[] splitter = { '$' };
errorrow.AddRange(errorstring.Split(splitter));
bothequal = "Centre Code: " + errorrow[0].ToString() + " with Registration Number " + errorrow[1] + " ,Student Name : " + errorrow[2].ToString() + " ,DD No.: " + errorrow[3].ToString() + " is invalid or does not match with Deposit Number or File is tempered";
break;
}
}
}
else
{
bothequal = "Either File is tampered or invalid File";
}
}
}
else
{
bothequal = "Either File is tampered or invalid File";
}
return bothequal;
}
{
string bothequal = "";
if (dt1.Columns.Count == 9 && dt2.Columns.Count == 9)
{
dt1.Columns.RemoveAt(4); // remove time column
dt2.Columns.RemoveAt(4); // remove time column
int dt1rows = dt1.Rows.Count;
int dt2rows = dt2.Rows.Count;
int dt1columns = dt1.Columns.Count;
int dt2columns = dt2.Columns.Count;
int secondcount = 0;
int firstcount = 0;
ArrayList firstarray = new ArrayList(); // from centre and can contain duplicate
ArrayList second = new ArrayList(); // to fill table from database
ArrayList first = new ArrayList(); // to fill table from from file upload by bank
if ((dt1rows <= dt2rows) && (dt1columns == dt2columns)) // fill arraylist from file to compare
{
foreach (DataRow vdr in dt1.Rows)
{
string rowvalue = "";
for (int h = 0; h < dt1columns; h++)
{
if (h == 3)
{
int ddnumber = Convert.ToInt32(vdr[h].ToString()); // to avoid extra zeros in front
rowvalue += ddnumber.ToString() + "---";
}
else
{
rowvalue += vdr[h].ToString() + "---";
}
}
firstarray.Add(rowvalue);
}
// remove duplicates if any present from file
foreach (string aString in firstarray)
{
if (!first.Contains(aString))
{
first.Add(aString);
}
}
firstcount = first.Count;
// fill arraylist from database to compare
foreach (DataRow vdr in dt2.Rows)
{
string rowvalue = "";
for (int h = 0; h < dt1columns; h++)
{
if (h == 3)
{
int ddnumber = Convert.ToInt32(vdr[h].ToString()); // to avoid extra zeros in front
rowvalue += ddnumber.ToString() + "---";
}
else
{
rowvalue += vdr[h].ToString() + "---";
}
}
second.Add(rowvalue);
}
secondcount = second.Count;
}
if (firstcount.ToString() == "0")
{
bothequal = "Either File is tampered or invalid File or Empty File !!";
}
else if (firstarray.Count.ToString() != firstcount.ToString())
{
bothequal = "File Contains Duplicate Rows or File is tempered !!";
}
else
{
// check for content same
if (firstcount.ToString() != "0" && secondcount.ToString() != "0")
{
foreach (string ss in first)
{
if (!second.Contains(ss))
{
ArrayList errorrow = new ArrayList(); // record errored row from file as it mismatch
string errorstring = ss.Replace("---", "$");
char[] splitter = { '$' };
errorrow.AddRange(errorstring.Split(splitter));
bothequal = "Centre Code: " + errorrow[0].ToString() + " with Registration Number " + errorrow[1] + " ,Student Name : " + errorrow[2].ToString() + " ,DD No.: " + errorrow[3].ToString() + " is invalid or does not match with Deposit Number or File is tempered";
break;
}
}
}
else
{
bothequal = "Either File is tampered or invalid File";
}
}
}
else
{
bothequal = "Either File is tampered or invalid File";
}
return bothequal;
}
Comments
Post a Comment