• Status: Solved
  • Priority: Medium
  • Security: Public
  • Views: 173
  • Last Modified:

Datatable - Adding Rows.

Hi,
I have a datatable with 5 rows
1
2
3
4
5

Can some one suugest some logic that would insert rows for each 5 so the end result would be
1
New Row
New Row
2
New Row
New Row
3
New Row
New Row
4
New Row
New Row
5
New Row
New Row

Thanks.
0
andyw27
Asked:
andyw27
1 Solution
 
Ramkisan JagtapLead DeveloperCommented:
Can you please provide the structure of your table?
0
 
andyw27Author Commented:
Hi,

Here is the data structure

            dtRaw.Columns.Add("parent_id", typeof(int));
            dtRaw.Columns.Add("component_id", typeof(int));
            dtRaw.Columns.Add("position", typeof(string));
            dtRaw.Columns.Add("level", typeof(int));
            dtRaw.Columns.Add("check", typeof(int));
            dtRaw.Columns.Add("qty", typeof(int));
0
 
Vishal PatilSoftware EngineerCommented:
Hello andyw27,

You can use following code sample:

            int l = 1;
            for (int i = 1; i < 6; i++)
            {
                    DataRow dtr1 = dtRaw.NewRow();
                    dtr1["ID"] = "New Row";
                    dtr1["parent_id"] = 101; // just to recognise newly added data
                    dtr1["component_id"] = 102;
                    dtr1["position"] = "New Position";
                    dtr1["level"] = 5;
                    dtr1["check"] = 3;
                    dtr1["qty"] = 15;
                    dtRaw.Rows.InsertAt(dtr1, l);
                    l++;
                    DataRow dtr2 = dtRaw.NewRow();
                    dtr2["ID"] = "New Row";
                    dtr2["parent_id"] = 102; // just to recognise newly added data
                    dtr2["component_id"] = 302;
                    dtr2["position"] = "New Position";
                    dtr2["level"] = 5;
                    dtr2["check"] = 2;
                    dtr2["qty"] = 25;
                    dtRaw.Rows.InsertAt(dtr2, l);
                    l += 2;
            }

Open in new window

0
 
Vishal PatilSoftware EngineerCommented:
Hello andyw27,

You can also use following code sample:

int k = 1;
            for (int i = 1; i < 6; i++)
            {

                for (int j = 1; j <= 2; j++)
                {
                    DataRow dtr1 = dtRaw.NewRow();
                    dtr1["ID"] = "New Row";
                    dtr1["parent_id"] = j + (i * 100); // just to recognise newly added data
                    dtr1["component_id"] = j + (i * 200);
                    dtr1["position"] = "New Position";
                    dtr1["level"] = i;
                    dtr1["check"] = i;
                    dtr1["qty"] = i;
                    dtRaw.Rows.InsertAt(dtr1, k);
                    k++;
                }
                k++;
            }

Open in new window

0
 
Jacques Bourgeois (James Burger)PresidentCommented:
I am not in a situation where I can test it, but the following should normally work, and this, no matter how many rows you have at the beginning:

            Dim d As DataTable
            Dim r As DataRow

            For x As Integer = 0 To d.Rows.Count-1
                  d.Rows.InsertAt(d.NewRow, x * 3 + 1)
                  d.Rows.InsertAt(d.NewRow, x * 3 + 2)
            Next
0

Featured Post

Free Tool: IP Lookup

Get more info about an IP address or domain name, such as organization, abuse contacts and geolocation.

One of a set of tools we are providing to everyone as a way of saying thank you for being a part of the community.

Tackle projects and never again get stuck behind a technical roadblock.
Join Now