First of all, never do this:
dr_row.ItemArray[6].ToString() == ""
Change it like this:
dr_row.ItemArray[6].ToString() == String.Empty
or
String.IsNullOrEmpty(dr_row.ItemArray[6].ToString())
However, this is just good practice. Now, to the problem you are facing.
What Itemarray does Itemarray , it creates a new array from the string, so if you change the array, you will not change the string.
Do it:
dr_row[6] = dr_row[4];
Must work.
source share