Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

.NET:Как да вмъкна XML документ в SQL Server

Трябва да използвате SqlParameter. Бих препоръчал да го направите така:

command.Parameters.Add(
   new SqlParameter("@xml", SqlDbType.Xml) 
       {Value = new SqlXml(new XmlTextReader(xmlToSave.InnerXml
                       , XmlNodeType.Document, null)) })

и SQL трябва да изглежда така:

String sql = "INSERT INTO "+tableName+" ("+columnName+") VALUES (@xml)";

И тъй като първото дете винаги е xml възел, можете да замените кодирането със следния оператор.

xmlToSave.FirstChild.InnerText = "version=\"1.0\" encoding=\"UTF-16\"";

Като цяло ще изглежда така:

void SaveXmlToDatabase(DbConnection connection,
      XmlDocument xmlToSave,
      String tableName, String columnName);
{
   String sql = "INSERT INTO "+tableName+" ("+columnName+") VALUES (@xml)";

   using (DbCommand command = connection.CreateCommand())
   {
      xmlToSave.FirstChild.InnerText = "version=\"1.0\" encoding=\"UTF-16\"";             
      command.CommandText = sql;
      command.Parameters.Add(
        new SqlParameter("@xml", SqlDbType.Xml) 
           {Value = new SqlXml(new XmlTextReader(xmlToSave.InnerXml
                       , XmlNodeType.Document, null)) });


      DbTransaction trans = connection.BeginTransaction();
      try
      {
         command.ExecuteNonQuery();
         trans.Commit();
      }
      catch (Exception)
      {
         trans.Rollback();
         throw;
      }
   }
}


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. SQL Server променя шрифта в html низ

  2. Формиране на низ за връзка за свързаност на Android към SQLServer

  3. Как да използвам SqlCommand за СЪЗДАВАНЕ НА БАЗА ДАННИ с параметризирано db име?

  4. .NET Core не може да се свърже с отдалечена база данни на SQL Server

  5. Как да проверите дължината на низа и след това да изберете подниз в Sql Server