2011-07-07 35 views
1

我有一个从文件加载的XmlDocument对象。C#中的XML到SQL中的varbinary列

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

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

回答

2

跳过加载XML文档,然后通过只读取该文件作为编码的开销字节直接:

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

上述用途System.IO

然后instert到SQL像这样:

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

cmd.ExecuteNonQuery(); 
3

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

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

理想你应该切换到一个XML类型列,虽然如果可能的话(即SQL服务器)或只是nvarchar

+0

+1我错过了varbinary部分 –

3
byte[] data = Encoding.UTF8.GetBytes(xmlDoc.OuterXml); 
+0

+1绝对更简洁,更不容易出错。 – BrokenGlass

相关问题