FAQ Sharepoint
FAQ SharepointConsultez toutes les FAQ
Nombre d'auteurs : 2, nombre de questions : 46, dernière mise à jour : 16 juin 2021
Vous pouvez utiliser la classe SPQuery. Voici, un exemple.
try
{
SPSite site =
new
SPSite
(
"serveur_url"
);
SPWeb web =
new
site.
OpenWeb
(
);
SPList list =
web.
Lists[
"votre_liste"
];
SPQuery query =
new
SPQuery
(
list.
DefaultView);
query.
Query =
"<Where><Eq><FieldRef Name='VotreChamp'/><Value Type='Text'>Une Valeur</Value></Eq></Where>"
;
SPListItemCollection items =
list.
GetItems
(
query);
foreach
(
SPListItem item in
items)
{
Console.
WriteLine
(
item[
"Title"
]
));
}
}
catch
(
SPException SpEx)
{
//Traitement d'erreur
}
Ici, nous utilisons l'opérateur "<Eq>, nous pourrions par exemple utiliser <Contains pour une recherche correspondant à un LIKE SQL.
Vous devez bien spécifier le nom interne du champ de liste et non son titre "Title".
Il existe également des outils graphiques permettant de générer des requêtes CAML. Une petite recherche sur CAML Query Builder sur google
vous guidera vers ce type d'outil.
try
{
SPSite site =
new
SPSite
(
"serveur_url"
);
SPWeb web =
new
site.
OpenWeb
(
);
SPList list =
web.
Lists[
"votre_liste"
];
SPQuery query =
new
SPQuery
(
list.
DefaultView);
query.
Query =
"<Where><Eq><FieldRef Name='VotreChamp'/><Value Type='Text'>Une Valeur</Value></Eq></Where>"
;
SPListItemCollection items =
list.
GetItems
(
query);
foreach
(
SPListItem item in
items)
{
Console.
WriteLine
(
item[
"Title"
]
));
}
}
catch
(
SPException SpEx)
{
//Traitement d'erreur
}
Dans l'exemple précédent, nous spécifions la vue "DefaultView". Nous aurions pu utiliser une vue définie au niveau de la liste. Il est aussi possible de spécifier
les champs à inclure comme ceci :
query.
ViewFields =
"<FieldRef Name='Champ1'/><FieldRef Name='Champ2'/>...."
;
Lorsque vous effectuez une requête CAML sur une liste Sharepoint via SPQuery, il faut veiller à bien spécifier le nom interne des colonnes dans la clause Where.
La propriété InternalName de la classe SPField vous renseignera.
try
{
SPSite site =
new
SPSite
(
"url du serveur"
);
SPWeb web =
site.
OpenWeb
(
);
SPList list =
web.
Lists[
"votre liste"
];
foreach
(
SPField field in
list.
Fields)
{
Console.
WriteLine
(
"Nom usuel : {0} Nom Interne: {1}"
,
field.
Title,
field.
InternalName);
}
}
catch
(
SPException SpEx){
//traitement}