SharePointCommunity
Die deutschsprachige Community für SharePoint, Microsoft 365, Teams, Yammer und mit Azure

Sponsored by

Willkommen im Forum Archiv.
Einträge sind hier nicht mehr möglich, aber der Bestand von 12 Jahren SharePoint-Wissen ist hier recherchierbar.




CAML-Query in SPQuery.Query mit <Query>-Tag liefert immer alle Datensätze

Geprüfte Antwort Dieser Beitrag hat 4 Antworten

Ohne Rang
242 Beiträge
Peter Oswald erstellt 7 Juni 2013 08:53
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Hallo,

durch einen ÜbertragungsFehler aus dem CAML-Builder kam ich auf Folgendes: ich habe eine einfache Query im CAML-Builder erzeugt

"<Query><Where><Eq><FieldRef Name='ID'/><Value Type='Number'>199</Value></Eq></Where></Query>"

und diese in das Standard-Snippet für programmatische CAML-Abfragen gestopft:

            SPList myList = SPContext.Current.Web.ParentWeb.Lists["meineListe"];
            SPQuery query = new SPQuery();
            query.Query = "<Query><Where><Eq><FieldRef Name='ID'/><Value Type='Number'>199</Value></Eq></Where></Query>";
            SPListItemCollection collListItem = myList.GetItems(query);

Dann war ich doch sehr überrascht, dass die Query alle Datensätze zurückgeliefert hat und nicht nur den einen mit der gesuchten ID.

 Ursache ist das <Query>-Tag, das in meinem Fall nicht in der SPQuery stehen darf. Aber warum? Syntaktisch konnte ich jetzt keinen Grund erkennen....!?

Alle Antworten

Ohne Rang
929 Beiträge
Thomas Östreich Als Antwort am 7 Juni 2013 09:47
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Du musst das <Query> entfernen das gehört dort nicht hin.

<Where>...</Where><OrderBy>...</OrderBy>

OrderBy ist optional.

Ohne Rang
242 Beiträge
Peter Oswald Als Antwort am 7 Juni 2013 10:28
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Dass es dort nicht hingehört, habe ich gemerkt - deswegen habe ich ja auch geschrieben

[quote user="Peter Oswald"]Ursache ist das <Query>-Tag, das in meinem Fall nicht in der SPQuery stehen darf. Aber warum?[/quote]

Aber warum? ist ja das was mich interessiert, denn wo steht, dass die SPQuery.Query dieses Tag nicht haben darf?

Ohne Rang
929 Beiträge
Thomas Östreich Als Antwort am 7 Juni 2013 10:37
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

Ok nicht bis zum Ende gelesen.

<Query> kannst du nur nutzen wenn du alles im ViewXml selber setzt und es nicht durch SPQuery erstellen lässt.

Die Property "Query" ist einfach "<Query>" steht auch in Grün auf der MSDN Seite

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery.query.aspx

http://msdn.microsoft.com/en-us/library/microsoft.sharepoint.spquery.viewxml.aspx

 

Ohne Rang
242 Beiträge
Peter Oswald Als Antwort am 7 Juni 2013 11:07
SchlechtSchlechtIn OrdnungIn OrdnungDurchschnittDurchschnittGutGutSehr gutSehr gut

[quote user="Thomas Östreich"]

Die Property "Query" ist einfach "<Query>" steht auch in Grün auf der MSDN Seite

[/quote]

Danke Thomas, für das Auflösen des Bretts vor meinem Kopf. ;-)