Skip to main content

compare two datatable in asp.net without linq

 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;

        }

Comments

Popular posts from this blog

show image in asp.net form from database

In order to show image from database to webform first add an image control in webpage.   <asp:Image ID="imgStudentImage" runat="server" Height="157px" Width="160px" /> Then add new webform to read image from database for example displayimage.aspx and in code behind model write the following code. public string str = //your string     public SqlConnection conn;     public SqlCommand sql = new SqlCommand();     public SqlDataReader dr;     public string strSQL;     protected void Page_Load(object sender, EventArgs e)     {         conn = new SqlConnection(str);         conn.Open();         long id = Convert.ToInt64(Request.QueryString["mId"]);         strSQL = "";         strSQL = strSQL + " SELECT snap from S...

Export Doc,Access,Image,CSV,Excel,Pdf,XML,HTML,Text,Print of Gridview in Asp.net

First import itextsharp.dll in the solution and use three namespces (basically for pdf) using iTextSharp.text; using iTextSharp.text.pdf; using iTextSharp.text.html.simpleparser;          Then Use the following code :- on each button  click  protected void Page_Load(object sender, EventArgs e)         {             if (!Page.IsPostBack)             {                 BindGridDetails(GridView1);             }         }                 protected DataTable BindGridDetails(GridView GridView1)         {   ...

Advent of code 2022 day 22 part 1

  function main(input, input1) {     let grid = input.split( '\n' );     grid.shift();     // only in big input     for ( let i = 0 ; i < 100 ; i++) {         grid[i] = '                                                  ' + grid[i];     }     //console.log(grid[100])     grid = grid.map(x => x.split( '' ))     // find first left top allowed     let temppos = - 1 ;     grid[ 0 ].forEach((element, i) => {         if (temppos == - 1 && element == '.' ) {             temppos = i;         }     });     let initpos = new pos(temppos, 0 )     // console.log(initpos)     // make grid equal shape     let...