2

我有一个从文件加载的 XmlDocument 对象。

XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("C:\\myxml.txt");

我需要将此 XML 文档转换为与 SQL 表中的 varbinary 兼容的格式。我怎样才能做到这一点?

4

3 回答 3

4
byte[] data = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
于 2011-07-07T19:15:36.637 回答
3

您可以将 XML 保存到内存流中,然后将生成的字节数组保存在您的varbinary列中:

MemoryStream ms = new MemoryStream();
xmlDoc.Save(ms);
ms.Position = 0;
byte[] xmlData = ms.ToArray();

理想情况下,您应该尽可能切换到 XML 类型列(即 SQL Server),或者只是nvarchar.

于 2011-07-07T19:13:29.287 回答
3

跳过加载 XML 文档的开销,然后通过直接将文件读取为字节来进行编码:

byte[] data = File.ReadAllbytes("C:\\myxml.txt");

以上使用 System.IO

然后像这样插入SQL:

SqlCommand cmd = new SqlCommand("INSERT INTO myTable(myCol) VALUES(@file)", myDbConn);
cmd.Parameters.Add("@file", SqlDbType.VarBinary).Value = data;

cmd.ExecuteNonQuery();
于 2011-07-07T19:29:57.507 回答