Code
/// <Summary>
/// Returns the datatable after the select distinct operation.
/// </Summary>
/// <Param name = "sourcetable"> Source data table </Param>
/// <Param name = "fieldnames"> Field set </Param>
/// <Returns> </returns>
Private Datatable selectdistinct (datatable sourcetable, Params String [] Fieldnames)
{
Object [] Lastvalues;
Datatable newtable;
Datarow [] orderedrows;
If (Fieldnames = Null | Fieldnames. Length = 0 )
Throw New Argumentnullexception ( " Fieldnames " );
Lastvalues= New Object[Fieldnames. Length];
Newtable= NewDatatable ();
foreach ( string fieldname in fieldnames)
newtable. columns. add (fieldname, sourcetable. columns [fieldname]. datatype);
orderedrows = sourcetable. select ( "" , string . join ( " , " , fieldnames ));
foreach (datarow row in orderedrows)
{< br> If ( ! fieldvaluesareequal (lastvalues, row, fieldnames)
{< br> newtable. rows. add (createrowclone (row, newtable. newrow (), fieldnames);
Setlastvalues (lastvalues, row, fieldnames );
}
}
ReturnNewtable;
}
Private BoolFieldvaluesareequal (Object[] Lastvalues, datarow currentrow,String[] Fieldnames)
{
BoolAreequal= True;
For ( Int I = 0 ; I < Fieldnames. length; I ++ )
{
If (Lastvalues [I] = Null | ! Lastvalues [I]. Equals (currentrow [fieldnames [I])
{
Areequal = False ;
Break ;
}
}
ReturnAreequal;
}
private datarow createrowclone (datarow sourcerow, datarow newrow, string [] fieldnames)
{< br> foreach ( string Field in fieldnames)
newrow [field] = sourcerow [field];
ReturnNewrow;
}
Private Void Setlastvalues ( Object [] Lastvalues, datarow sourcerow, String [] Fieldnames)
{
For ( Int I = 0 ; I < Fieldnames. length; I ++ )
Lastvalues [I] = Sourcerow [fieldnames [I];
}
Datatable. Select
Public datatable filltable (string m_where, datatable m_table)
{
Datatable _ temp = m_table.clone ();
Datarow [] _ ROW = m_table.select (m_where );
Foreach (datarow _ r in _ row)
{
_ Temp. Rows. Add (_ R. itemarray );
}
Return _ temp;
}
Viewstate ["backurl"] = request. urlreferrer. tostring ();
protected void button1_click1 (Object sender, eventargs e)
{< br> If (viewstate ["backurl"]! = NULL)
{< br> response. Redirect (viewstate ["backurl"]. tostring ();
}< BR >}