2011-07-07 38 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

相關問題