Вы, вероятно, хотели бы разделить ту большую таблицу в конечном счете. Вы, вероятно, захотите поместить его на отдельный жесткий диск перед размышлением о втором сервере. Выполнение его с MySQL является самой удобной опцией. Если это способно, то пойдите для него.
, НО
Все зависит от того, как Ваша база данных используется, действительно. Статистика.
Либо явно напишите объявление, либо используйте StringWriter
и вызовите Save ()
:
using System;
using System.IO;
using System.Text;
using System.Xml.Linq;
class Test
{
static void Main()
{
string xml = @"<?xml version='1.0' encoding='utf-8'?>
<Cooperations>
<Cooperation />
</Cooperations>";
XDocument doc = XDocument.Parse(xml);
StringBuilder builder = new StringBuilder();
using (TextWriter writer = new StringWriter(builder))
{
doc.Save(writer);
}
Console.WriteLine(builder);
}
}
Вы можете легко добавить это как расширение method:
public static string ToStringWithDeclaration(this XDocument doc)
{
if (doc == null)
{
throw new ArgumentNullException("doc");
}
StringBuilder builder = new StringBuilder();
using (TextWriter writer = new StringWriter(builder))
{
doc.Save(writer);
}
return builder.ToString();
}
Это имеет то преимущество, что он не сработает, если не объявление :)
Затем вы можете использовать:
string x = doc.ToStringWithDeclaration();
Обратите внимание, что будет использоваться utf-16 как кодирование, потому что это неявное кодирование в StringWriter
. Вы можете повлиять на это самостоятельно, создав подкласс StringWriter
, например , чтобы всегда использовать UTF-8 .
Свойство Объявление будет содержать объявление XML. Чтобы получить содержание плюс декларацию, вы можете сделать следующее:
tb_output.Text = xml.Declaration.ToString() + xml.ToString()
Вы также можете использовать XmlWriter и вызвать метод
Writer.WriteDocType()
.