Вы используете row.Table.WriteXml(...)
. Это записывает всю таблицу, так что: все строки. Насколько я знаю, нет встроенного API для экспорта одной строки за раз; Я думаю, вы могли бы клонировать / добавить / удалить строку в идентичной, но пустой таблице?
Что-то вроде (не проверено):
var clone = dt.Clone(); // is empty
foreach(DataRow row in dt.Rows)
{
clone.Rows.Clear();
clone.ImportRow(row);
clone.WriteXml("D:\\" + row["id"] + ".xml");
}
Возможно, будет проще использовать XmlWriter
.