ファイルからロードするXmlDocumentオブジェクトがあります。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("C:\\myxml.txt");
このXMLドキュメントをSQLテーブルのvarbinaryと互換性のある形式に変換する必要があります。どうすればこれを達成できますか?
ファイルからロードするXmlDocumentオブジェクトがあります。
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load("C:\\myxml.txt");
このXMLドキュメントをSQLテーブルのvarbinaryと互換性のある形式に変換する必要があります。どうすればこれを達成できますか?
byte[] data = Encoding.UTF8.GetBytes(xmlDoc.OuterXml);
XMLをメモリストリームに保存してから、結果のバイト配列をvarbinary
列に保存できます。
MemoryStream ms = new MemoryStream();
xmlDoc.Save(ms);
ms.Position = 0;
byte[] xmlData = ms.ToArray();
理想的には、可能であれば(つまり、SQL Server)または単にXMLタイプの列に切り替える必要があります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();