I have the following code in my app to pull details from a sharepoint list.
string siteUrl = "http://SHAREPOINTURL";
ClientContext clientContext = new ClientContext(siteUrl);
clientContext.Credentials = new NetworkCredential("UN", "PW", "DOMAIN");
SP.List oList = clientContext.Web.Lists.GetByTitle("Licences");
CamlQuery camlQuery = new CamlQuery();
camlQuery.ViewXml = "<Where><Eq><FieldRef Name='Account' /><Value Type='Text'>123456</Value></Eq></Where>";
ListItemCollection collListItem = oList.GetItems(camlQuery);
clientContext.Load(collListItem);
clientContext.ExecuteQuery();
Console.WriteLine("Filtered List: " + collListItem.Count.ToString() + "\n");
foreach (ListItem oListItem in collListItem)
{
Console.WriteLine("Account: {0} \nLicence: {1} \nMAC: {2}\n", oListItem["Account"], oListItem["Licence"], oListItem["MAC"]);
}
In the sharepoint list I have created multiple test items but every time I run the above code all items in the list are returned regardless of what I use for the camlQuery.
Can anyone let me know where I'm going wrong with this pretty new to C# and never touched sharepoint before this.
Edit1: updated with advice from below.
Edit2: simplified the code but still getting the same problem.
If you want to return the filtered items, in your case is returning all the items, correct? if yes, this problem is in CAMLQuery ...
I have read a small documentation(link below):
And I noticed the formatting ViewXml:
camlQuery.ViewXml = "<Where><Eq><FieldRef Name='Account' /><Value Type='Text'>123456</Value></Eq></Where>"
try with this code:
camlQuery.ViewXml = "<View><Query><Where><Eq><FieldRef Name='Account' /><Value Type='Text'>123456</Value></Eq></Where></Query></View>"
I have working using with caml.
some syntax to reflect:
camlquery.query = "<query> ..... </query>";
camlquery.ViewXml = "<view> ..... </view>";
SORRY MY BAD ENGLISH :S