/// <summary> /// Delete Order Item /// </summary> /// <param name="grd"></param> /// <param name="dt"></param> /// <param name="rowNumber"></param> private void DeleteOrderItem(DataGrid grd, OrderDetailsDS.OrderDetailsDataTable dt, int rowNumber) { if (rowNumber >= 0) { DialogResult dr = MessageBox.Show("Are you sure to delete this item?", "Delete item", MessageBoxButtons.YesNo, MessageBoxIcon.Question, MessageBoxDefaultButton.Button1); if (dr == DialogResult.Yes) { try { //delete items _itemBiz.DeleteOrderItem(((OrderDetailsDS.OrderDetailsRow)dt.Rows[rowNumber]).ID); //delete from the data table dt.Rows[rowNumber].Delete(); this.UpdateTotals(dt); } catch (Exception ex) { MessageBox.Show(ex.Message); } } } }The item is deleted from the actual table, but then I'm getting an error on dt.Rows[rowNumber].Delete(); - the item can not be accessed. If I comment this line out, the item gets deleted, but the grid is not refreshed (and totals too).