title: Calling a Stored Procedure with XML Datatype
body: <p>I am simply trying to call a store procedure (SQL Server 2008) using C# and passing XMLDocument to a store procedure parameter that takes a SqlDbType.Xml data type.  I am getting error:  Failed to convert parameter value from a XmlDocument to a String.  Below is code sample.  How do you pass an XML Document to a store procedure that is expecting an XML datatype?  Thanks.</p>
  
  <pre><code>        XmlDocument doc = new XmlDocument();
          //Load the the document with the last book node.
          XmlTextReader reader = new XmlTextReader(@"C:\temp\" + uploadFileName);
          reader.Read();
          // load reader 
          doc.Load(reader);
  
          connection.Open();
  
          SqlCommand cmd = new SqlCommand("UploadXMLDoc", connection);
  
          cmd.CommandType = CommandType.StoredProcedure;
  
          cmd.Parameters.Add("@Year", SqlDbType.Int);
          cmd.Parameters["@Year"].Value = iYear;
          cmd.Parameters.Add("@Quarter", SqlDbType.Int);
          cmd.Parameters["@Quarter"].Value = iQuarter;
          cmd.Parameters.Add("@CompanyID", SqlDbType.Int);
          cmd.Parameters["@CompanyID"].Value = iOrganizationID;
          cmd.Parameters.Add("@FileType", SqlDbType.VarChar);
          cmd.Parameters["@FileType"].Value = "Replace";
          cmd.Parameters.Add("@FileContent", SqlDbType.Xml);
          cmd.Parameters["@FileContent"].Value = doc;
          cmd.Parameters.Add("@FileName", SqlDbType.VarChar);
          cmd.Parameters["@FileName"].Value = uploadFileName;
          cmd.Parameters.Add("@Description", SqlDbType.VarChar);
          cmd.Parameters["@Description"].Value = lblDocDesc.Text;
          cmd.Parameters.Add("@Success", SqlDbType.Bit);
          cmd.Parameters["@Success"].Value = false;
          cmd.Parameters.Add("@AddBy", SqlDbType.VarChar);
          cmd.Parameters["@AddBy"].Value = Page.User.Identity.Name;
  
          cmd.ExecuteNonQuery();
          connection.Close();
  </code></pre>