Hi All,
Due to can't insert new row between row and row while current
DataTable looping.
In order to solve the problem, I need to clone it as new DataTable,
while the DataTable Looping, it also insert both of new row and
existing datarow into new DataTable, but I don't know how to do that,
Here is my souce code, Please advise.
if ( myTable.Rows.Count > 0 )
{
msg.Text = "";
y = myTable.Rows.Count;
for (i=0; y > i ; i++ )
{
DataRow dataRow = myTable.Rows[i];
if ((Convert.ToString(myOrderNo) == "") ||
(Convert.ToString(myOrderNo) == null))
{
myOrderNo = Convert.ToString(dataRow["OrderNo"]);
}
if (myOrderNo != Convert.ToString(dataRow["OrderNo"]))
{
// DataRowCollection rc = myTable.Rows;
mySubTotal = Convert.ToDouble(myTotalPrice) - (
Convert.ToDouble(myTotalPrice) *
Convert.ToInt16(dataRow["HeadDiscount"]) /100 );
dr1 = myTable.NewRow();
dr1["OrderNo"] = myOrderNo;
dr1["TotalPrice"] = Convert.ToDouble(mySubTotal);
// myTable.Rows.Add(dr1);
myTable.Rows.InsertAt(dr1,i);
myTable.AcceptChanges();
myGrandTotal = Convert.ToDouble(myGrandTotal) +
Convert.ToDouble(mySubTotal);
myOrderNo = Convert.ToString(dataRow["OrderNo"]);
myTotalPrice = 0;
}
myTotalPrice = myTotalPrice +
Convert.ToDouble(dataRow["TotalPrice"]);
// Add Last Record
if (y == i + 1)
{
DataRowCollection rc = myTable.Rows;
mySubTotal = Convert.ToDouble(myTotalPrice) - (
Convert.ToDouble(myTotalPrice) *
Convert.ToInt16(dataRow["HeadDiscount"]) /100 );
dr1 = myTable.NewRow();
dr1["OrderNo"] = myOrderNo;
dr1["TotalPrice"] = Convert.ToDouble(mySubTotal);
//myTable.Rows.Add(dr1);
myTable.Rows.InsertAt(dr1,i);
myTable.AcceptChanges();
myGrandTotal = Convert.ToDouble(myGrandTotal) +
Convert.ToDouble(mySubTotal);
}
}