Skip to main content

How to partition or split DataTable in C#?

Today we will discuss how we can divide or split a very large data table into fixed size of chunks?

Scenario:
Suppose there is a data table which has 1000 Rows.
When you perform for each loop on data table and read each row at that time it will take too much time.
If we devide 1000 Rows datatable into 10 fixed sizes (e.g. 100 Rows) datatable, It will take less time.
Let's check how to achieve it.
Here is a code.


  private static List<DataTable> SplitTable(DataTable originalTable, int batchSize)  
     {  
       List<DataTable> tables = new List<DataTable>();  
       int i = 0;  
       int j = 1;  
       DataTable newDt = originalTable.Clone();  
       newDt.TableName = "Table_" + j;  
       newDt.Clear();  
       foreach (DataRow row in originalTable.Rows)  
       {  
         DataRow newRow = newDt.NewRow();  
         newRow.ItemArray = row.ItemArray;  
         newDt.Rows.Add(newRow);  
         i++;  
         if (i == batchSize)  
         {  
           tables.Add(newDt);  
           j++;  
           newDt = originalTable.Clone();  
           newDt.TableName = "Table_" + j;  
           newDt.Clear();  
           i = 0;  
         }  
       }  
       return tables;  
     }  

For More Updates stay connected On: Learn2All Facebook Page
Amazing Concepts in Video:  Video On YouTube



Comments

  1. Hi Dhruvin, will it be faster than usual for loop?

    ReplyDelete
    Replies
    1. No , It will take same time.
      But it is useful when you are performing Datatable.select
      in your code.
      When we use datatable.select and find something from datatable at that time it will very useful.

      Delete
    2. Hi, useful means? can u mention any?

      Delete
    3. Datatable.select
      means suppose if you want to find employee whose name is "dhruvin" and salary is 5000.
      At that time 100 row datatable speeds faster

      Delete
    4. Thank you, while replying if possible link is can provided?

      Delete
  2. This comment has been removed by the author.

    ReplyDelete

Post a Comment

Popular posts from this blog

How To Lock Objects In Power BI

Overview Sometimes, there is a situation where when we open a report and click on any visual it accidentally nudges a chart a little bit to the right or left. Sometimes, by mistake when viewing a report, the arrangement of visuals scatters a little bit. Microsoft rolls out one new amazing feature to resolve this issue, that is, Lock Objects in Power BI. Advantages of using this feature When our purpose is to only view a report, this feature is a boon for us. Visualization’s position is not changed. Saves a lot of the developer's time to resolve the position related issues. Note   -  This feature is not saved with the report. So, every time you open a report, you need to enable this feature. Now, let’s understand this feature in a brief manner. To understand this, I will first show you one report in which I have not enabled “Lock Objects” feature. Step 1 The below screenshot shows my report which doesn’t have the enabled Lock Objects feature. ...

Install Power BI PowerShell On Your Windows Machine

Overview : In this article, we will learn how we can easily install PowerShell for the Power BI on our machine. Installation of PowerShell for Power BI is very easy, and I have tested it. So, let’s get started! Notes before you start Check your current Windows PowerShell version using the following code snippet. $psversiontable   Make sure you have the latest version of PowerShell installed on your machine. I will recommend having PowerShell version 5.1 or more. If you have an older version, you are not able to install the PowerBI module. Update your .NET Framework with 4.7.2 or higher. Once we have the above two prerequisites, we are ready for the installation for the Power BI PowerShell. You can find Microsoft.PowerBI.PowerShell Module in the PowerShell Gallery. Here is a link for the same:   Click Here . You can also download it from Microsoft GIT repo:   Click here . Now, let’s start the process. Step 1 Open your Windows PowerShel...