I'm not sure why you've posted to an XSLT forum and mentioned XSLT in your title when you aren't using XSLT.
I would have thought it was pretty obvious that if you do this:
dr["Price"] = iter.Current.Value;
dr["Artist"] = iter.Current.Value;
then both variables will be set to the same value.
Better to do your XPath iteration over the cd elements, and then select the child artist/price elements of each cd by direct navigation.
Michael Kay
http://www.saxonica.com/
Author, XSLT Programmer's Reference and XPath 2.0 Programmer's Reference