我有一个从文件加载的XmlDocument对象。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("C:\\myxml.txt");
我需要将此XML Document转换为与SQL表中的varbinary兼容的格式。我怎样才能做到这一点?
答案 0 :(得分:4)
byte[] data = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
答案 1 :(得分:3)
您可以将XML保存到内存流中,然后将生成的字节数组保存在varbinary
列中:
MemoryStream ms = new MemoryStream();
xmlDoc.Save(ms);
ms.Position = 0;
byte[] xmlData = ms.ToArray();
理想情况下应尽可能切换到XML类型列(即SQL Server)或nvarchar
。
答案 2 :(得分: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();