Monday, 20 July 2015

DataTable related techniques(Filetr records using dataview,create datatable)

(1)Filter datatable records using Datatableview
==========================================================
DataTable HospitalsData = new DataTable();
DataView HospitalsDataView = new DataView(HospitalsData);

 (a)where condition
---------------------------------------------------------------------------------------
string HospitalFilterWithCity = string.Format("Ex={0}", CityID);
            HospitalsDataView.RowFilter = HospitalFilterWithCity;
            DataTable HospitalsDataViewResult = HospitalsDataView.ToTable();

            var HospitalsIds = HospitalsDataViewResult.AsEnumerable();
            var HospitalsIdsWithComa = string.Join(",", HospitalsIds.Select(r => r.Field<int>(0)));

(b) In condition
--------------------------------------------------------------------------------------
 HospitalsXSpecialtiesDataView.RowFilter = "HospitalId IN(" + HospitalsIdsWithComa + ")";
                DataTable HospitalsXSpecialtiesDataViewResult = HospitalsXSpecialtiesDataView.ToTable();
                var SpecialitiesID = HospitalsXSpecialtiesDataViewResult.AsEnumerable().Select(r => r.Field<int>(1)).Distinct();
                HospitalXSpecialitiesIDWithComa = string.Join(",", SpecialitiesID);

(c)Like condition
--------------------------------------------------------------------------------------
 string withSearchTestStart = string.Format("Name LIKE '{0}%'", Searchtext);
            DataView ResponseStartSearchText = new DataView(Response);
            ResponseStartSearchText.RowFilter = withSearchTestStart;
            ResponseStartSearchText.Sort = "Type";
            DataTable ResultSerWithStartSerchText = ResponseStartSearchText.ToTable();

            string withSearchTestNotStart = string.Format("Name NOT LIKE '{0}%'", Searchtext);
            DataView ResponseNotSearchText = new DataView(Response);
            ResponseNotSearchText.RowFilter = withSearchTestNotStart;
            DataTable ResultNotStartSerchText = ResponseNotSearchText.ToTable();
(2)Create new datatable
===============================================================

DataTable Response = new DataTable() { TableName = "resultset" };
DataColumn[] columns ={
                                new DataColumn("Id", typeof(String)),
                                new DataColumn("Name", typeof(String)),
                                new DataColumn("Type",typeof(String)),                                     
                                new DataColumn("Ex",typeof(String)),   
                              };
Response.Columns.AddRange(columns);
(3)Assign one datatable values to another datatble
================================================================

DataTable HealthCheckDataViewResult = HealthCheckDataView.ToTable();
foreach (DataRow dr in HealthCheckDataViewResult.Rows)
{
     Response.Rows.Add(dr.ItemArray);
 }

No comments:

Post a Comment