Solved

Datatable - Adding Rows.

Posted on 2014-10-08
5
151 Views
Last Modified: 2014-11-18
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
Comment
Question by:andyw27
5 Comments
 
LVL 12

Expert Comment

by:Ramkisan Jagtap
ID: 40368180
Can you please provide the structure of your table?
0
 

Author Comment

by:andyw27
ID: 40368236
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
 
LVL 2

Accepted Solution

by:
Vishal Patil earned 500 total points
ID: 40368253
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
 
LVL 2

Expert Comment

by:Vishal Patil
ID: 40368256
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
 
LVL 40
ID: 40368952
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

3 Use Cases for Connected Systems

Our Dev teams are like yours. They’re continually cranking out code for new features/bugs fixes, testing, deploying, testing some more, responding to production monitoring events and more. It’s complex. So, we thought you’d like to see what’s working for us.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
Performance in games development is paramount: every microsecond counts to be able to do everything in less than 33ms (aiming at 16ms). C# foreach statement is one of the worst performance killers, and here I explain why.
You have products, that come in variants and want to set different prices for them? Watch this micro tutorial that describes how to configure prices for Magento super attributes. Assigning simple products to configurable: We assigned simple products…
The Email Laundry PDF encryption service allows companies to send confidential encrypted  emails to anybody. The PDF document can also contain attachments that are embedded in the encrypted PDF. The password is randomly generated by The Email Laundr…

914 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

17 Experts available now in Live!

Get 1:1 Help Now