Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Database
In dit voorbeeld ziet u:
Hoe gebruik je Microsoft SQLXML Managed Classes (Microsoft.Data.SqlXml) om toegang te krijgen tot Microsoft SQL Server in de Microsoft .NET Framework-omgeving.
Hoe DiffGrams die worden gegenereerd in de .NET Framework-omgeving data-updates kunnen toepassen op SQL Server-tabellen.
In deze toepassing wordt een XPath-query uitgevoerd tegen een XSD-schema. De uitvoering van de XPath-query levert een XML-document terug dat bestaat uit contactgegevens (Voornaam, Achternaam). De applicatie laadt het XML-document in de dataset in de .NET Framework-omgeving. De gegevens in de dataset worden aangepast: de voornaam van het contact wordt veranderd in "Susan" voor het eerste contact in de dataset. Het DiffGram wordt gegenereerd uit de dataset, en de update die in het DiffGram is gespecificeerd (de wijziging van de voornaam van de werknemer) wordt vervolgens toegepast op de Person.Contact-tabel.
Opmerking
In de code moet je de naam van de instantie van SQL Server in de verbindingsreeks opgeven.
using System;
using System.Data;
using Microsoft.Data.SqlXml;
using System.IO;
class Test
{
static string ConnString = "Provider=SQLOLEDB;Server=SqlServerName;database=AdventureWorks;Integrated Security=SSPI;";
public static int testParams()
{
DataRow row;
SqlXmlAdapter ad;
//need a memory stream to hold diff gram temporarily
MemoryStream ms = new MemoryStream();
SqlXmlCommand cmd = new SqlXmlCommand(ConnString);
cmd.RootTag = "ROOT";
cmd.CommandText = "Con";
cmd.CommandType = SqlXmlCommandType.XPath;
cmd.SchemaPath = "MySchema.xml";
//load data set
DataSet ds = new DataSet();
ad = new SqlXmlAdapter(cmd);
ad.Fill(ds);
row = ds.Tables["Con"].Rows[0];
row["FName"] = "Susan";
ad.Update(ds);
return 0;
}
public static int Main(String[] args)
{
testParams();
return 0;
}
}
Om het voorbeeld te testen:
Om dit voorbeeld te testen, moet je het Microsoft .NET Framework op je computer hebben geïnstalleerd.
Sla dit XSD-schema (MySchema.xml) op in een map:
<xsd:schema xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:sql="urn:schemas-microsoft-com:mapping-schema"> <xsd:element name="Con" sql:relation="Person.Contact" > <xsd:complexType> <xsd:sequence> <xsd:element name="FName" sql:field="FirstName" type="xsd:string" /> <xsd:element name="LName" sql:field="LastName" type="xsd:string" /> </xsd:sequence> <xsd:attribute name="ContactID" type="xsd:integer" /> </xsd:complexType> </xsd:element> </xsd:schema>Sla de C#-code (DocSample.cs) die in dit voorbeeld wordt gegeven op in dezelfde map waarin het schema is opgeslagen. (Als je de bestanden in een andere map opslaat, moet je de code bewerken en het juiste directorypad voor het mappingschema opgeven.)
Compileer de code. Om de code in de opdrachtprompt te compileren, gebruik u:
csc /reference:Microsoft.Data.SqlXML.dll DocSample.csDit creëert een uitvoerbaar bestand (DocSample.exe).
Voer bij de opdrachtprompt DocSample.exeuit.