![](/img/trans.png)
[英]SQL varbinary column to byte array in c# fails when result set is passed in as XML
[英]XML in C# to varbinary column in SQL
我有一個從文件加載的 XmlDocument object。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("C:\\myxml.txt");
我需要將此 XML 文檔轉換為與 SQL 表中的 varbinary 兼容的格式。 我怎樣才能做到這一點?
byte[] data = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
您可以將 XML 保存到 memory stream 中,然后將生成的字節數組保存在varbinary
列中:
MemoryStream ms = new MemoryStream();
xmlDoc.Save(ms);
ms.Position = 0;
byte[] xmlData = ms.ToArray();
理想情況下,如果可能的話,您應該切換到 XML 類型的列(即 SQL 服務器)或只是nvarchar
。
跳過加載 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();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.