Что именно вы пытаетесь достичь здесь?Похоже, вы создаете поле XML в хранимой процедуре, и оно помещается в таблицу DataTable точно так же, как одно поле XML.Это ожидаемое поведение.Поэтому я думаю, что самый большой вопрос, который задают в комментариях выше, заключается в том, почему данные сначала формируются в XML, если вы хотите, чтобы они были таблицей в коде?
Одна вещь, которую вы могли бы сделать, этоиспользуйте LINQ to XML (или какой-то аналогичный подход для анализа XML DOM), чтобы запросить возвращенные результаты, чтобы получить необходимые данные из возвращенных полей.Это должно показаться довольно простым, так как вы ожидаете работать с табличными данными, и LINQ обладает этим «чувством SQL».
Однако один важный момент, который вы можете упустить в этом вопросе, - это структурное различиемежду таблицами и XML.Таблицы реляционные, XML иерархический.Они предназначены для представления данных совершенно разными способами.При этом вполне возможно, что возвращаемый XML не может быть напрямую переведен в один объект DataTable.Возможно, это не таблица данных.