Aracılığıyla paylaş


İstemci Tarafında XML İşleme (SQLXML Yönetilen Sınıfları)

Şunlar için geçerlidir:SQL ServerAzure SQL Veritabanı

Bu örnek, ClientSideXml özelliğinin kullanımını göstermektedir. Uygulama, sunucuda depolanmış bir prosedürü çalıştırır. Depolanan prosedürün sonucu (iki sütunlu bir satır seti) istemci tarafında işlenir ve bir XML belgesi üretilir.

Aşağıdaki GetContacts kayıtlı prosedürü, AdventureWorks veritabanındaki Person.Contact tablosunda çalışanların Adı ve Soyadını döndürür.

USE AdventureWorks2022;
CREATE PROCEDURE GetContacts @LastName varchar(20)  
AS  
SELECT FirstName, LastName  
FROM   Person.Contact  
WHERE LastName = @LastName  
Go  

Bu C# uygulaması saklanan prosedürü çalıştırır ve CommandText değerini belirtirken FOR XML AUTO seçeneğini belirtir. Uygulamada, SqlXmlCommand nesnesinin ClientSideXml özelliği true olarak ayarlanır. Bu, önceden var olan kayıtlı prosedürleri çalıştırıp bir satır kümesini döndürüp istemci üzerinde XML dönüşümü uygulamanıza olanak tanır.

Uyarı

Kodda, bağlantı dizisinde Microsoft SQL Server örneğinin adını belirtmeniz gerekir.

using System;  
using Microsoft.Data.SqlXml;  
using System.IO;  
class Test  
{  
    static string ConnString = "Provider=SQLOLEDB;Server=(local);database=AdventureWorks;Integrated Security=SSPI";  
      public static int testParams()  
      {  
         //Stream strm;  
         SqlXmlParameter p;  
         SqlXmlCommand cmd = new SqlXmlCommand(ConnString);  
         cmd.ClientSideXml = true;  
         cmd.CommandText = "EXEC GetContacts ? FOR XML NESTED";  
         p = cmd.CreateParameter();  
         p.Value = "Achong";  
         using (Stream strm = cmd.ExecuteStream())   
         {  
            using (StreamReader sr = new StreamReader(strm))  
                  {  
               Console.WriteLine(sr.ReadToEnd());  
            }  
         }  
         return 0;  
      }  
  
public static int Main(String[] args)  
{  
    testParams();  
    return 0;  
}  
}  

Bu örneği test etmek için Microsoft .NET Framework'ün bilgisayarınızda yüklü olması gerekir.

Uygulamayı test etmek için

  1. Depolanmış prosedürü oluşturun.

  2. Bu örnekte verilen C# kodunu (DocSample.cs) bir klasörde kaydedin. Kodu uygun giriş ve şifre bilgilerini belirtmek için düzenleyin.

  3. Kodu derleyin. Kodu komut isteğinde derlemek için şunları kullanın:

    csc /reference:Microsoft.Data.SqlXML.dll DocSample.cs  
    

    Bu, bir yürütülebilir (DocSample.exe) oluşturur.

  4. Komut dizisinde, DocSample.exeçalıştırın.