Add data row to datatable at predefined index

RSM picture RSM · Dec 17, 2013 · Viewed 34.5k times · Source

I have a datatable with one column:

this.callsTable.Columns.Add("Call", typeof(String));

I then want to add a row to that datatable, but want to give a specific index, the commented number is the desired index:

this.callsTable.Rows.Add("Legs"); //11

Update:

  • Must be able to handle inputting hundreds of rows with unique indexes.
  • The index must be what is defined by me no matter if there are enough rows in the table or not for the insertat function.

Answer

Habib picture Habib · Dec 17, 2013

You can use DataTable.Rows.InsertAt method.

DataRow dr = callsTable.NewRow(); //Create New Row
dr["Call"] = "Legs";              // Set Column Value
callsTable.Rows.InsertAt(dr, 11); // InsertAt specified position

See: DataRowCollection.InsertAt Method

If the value specified for the pos parameter is greater than the number of rows in the collection, the new row is added to the end.