Спасибо за предложения, ребята. Я понял. Проблема не в SQL Server (как я уже сказал, студия управления возвращает ответ правильно в одной строке). Добавление типа также не помогает (сервер Sql знал, что это xml с самого начала). Проблема в том, что ADO.NET разбивает результаты при создании таблицы данных.
Оказывается, мне не следует использовать SqlDataReader из Command.ExecuteReader. Вместо этого я должен использовать System.Xml.XmlReader из Command.ExecuteXmlReader. Затем вы делаете, как вы предложили, объединяя эти результаты (хотя, вероятно, будет достаточно просто объединить все результаты из всех строк, используя метод DataAdapter.Fill).
Таким образом, что-то вроде этого:
System.Xml.XmlReader rdr = Command.ExecuteXmlReader();
try
{
System.Text.StringBuilder sb = new System.Text.StringBuilder();
rdr.Read();
while (! rdr.EOF)
{
sb.Append(rdr.ReadOuterXml());
}
result = sb.ToString();
}
finally
{
rdr.Close();
}
Спасибо за помощь!