Sqlserver
 sql >> Teknologi Basis Data >  >> RDS >> Sqlserver

.NET:Cara memasukkan dokumen XML ke SQL Server

Anda harus menggunakan SqlParameter. Saya akan merekomendasikan melakukannya seperti itu:

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

dan SQL akan terlihat seperti:

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

Dan karena anak pertama selalu merupakan simpul xml, Anda dapat mengganti penyandian dengan pernyataan berikut.

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

Secara keseluruhan akan terlihat seperti itu:

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. Bagaimana cara membuat SQL Server menemukan login yang cocok dengan nama yang diberikan?

  2. Ambil definisi kolom untuk kumpulan hasil prosedur tersimpan

  3. Tentang Perintah GO di SQL Server

  4. Dapatkan BARIS sebagai KOLOM (permintaan PIVOT dinamis SQL Server)

  5. Perubahan penting untuk Acara yang Diperpanjang di SQL Server 2012