How to convert XmlDocument to XmlReader for SqlXml data type.

The SqlXml datatype constructor only accepts a Stream or XmlReader, if you have an XmlDocument in memory (go with stream if you have it) then you can easily convert to a SqlXml compatible stream with the XmlNodeReader class.

XmlNodeReader implements IDisposable, so wrap it in a using or try/catch.

For example:

XmlDocument xml = new XmlDocument(); using (XmlNodeReader xnr = new XmlNodeReader(xml)) { SqlXml sx = new SqlXml(xnr); }