Sie möchten per MSSQL direkt auf die Datensätze eines Web-Formulars zugreifen und gezielte Werte abfragen.
In diesem Beispiel haben wir aus der Datenbanktabelle FormData folgenden Beispieldatensatz:
XML-Beispieldatensatz aus der Datenbanktabelle FormData mit der id
6
Abfrage, um den Inhalt der Controls mit dem Namen
txt_1
auszulesen
select [xml].value('(/FormViewer/Data[@Name="txt_1"]/@Value)[1]','varchar(max)') as Ausgabe from FormData where id=6
Ergebnis der Abfrage
Alternativ können Sie noch flexibler folgende Abfrage-Vorlage verwenden:
select T.c.value('@Name', 'nvarchar(255)') Control, T.c.value('@Value','nvarchar(max)') Wert from FormData cross apply xml.nodes('/FormViewer/Data') T(c) --where T.c.value('@Name', 'nvarchar(255)') = 'controlname'
Somit ist es möglich, mit einer MSSQL-XML-Query gezielt auf Werte von konkreten Attributnamen im XML-Datensatz zuzugreifen.