Hi guys!
I'm trying out another sample from the MSDN
documentation, this time on the StsAdapter.Query method. The full code
is available
here.
My understanding is that "Web_Reference_Folder" and
"Web_Reference_Name" should point to the Web References that I imported
into my Visual Studio For Applications project.
Web_Reference_Folder.StsAdapter myStsAd = new Web_Reference_Folder.StsAdapter();
myStsAd.Credentials= System.Net.CredentialCache.DefaultCredentials;
string[] vArray = new string[1];
vArray[0] = "1.0";
Web_Reference_Name.Versions myVersion = new Web_Reference_Name.Versions();
myVersion.version = vArray;
myStsAd.versions = myVersion;
Web_Reference_Name.RequestHeader reqHeader = new Web_Reference_Name.RequestHeader();
reqHeader.document = Web_Reference_Name.DocumentType.content;
reqHeader.method = Web_Reference_Name.MethodType.query;
myStsAd.request = reqHeader;
Web_Reference_Name.QueryRequest myRequest = new Web_Reference_Name.QueryRequest();
Web_Reference_Name.DSQuery sQuery = new Web_Reference_Name.DSQuery();
sQuery.select = "/list[@id='{e5c6603b-0f6c-4bd9-8bb1-57c83854308b}']"; // I changed this to my SharePoint list's GUID
myRequest.dsQuery = sQuery;
Web_Reference_Name.DspQuery spQuery = new Web_Reference_Name.DspQuery();
XmlDocument xmlDoc = new System.Xml.XmlDocument();
XmlElement ndQuery = xmlDoc.CreateElement("And");
// I changed this section to query two text columns in my list
ndQuery.InnerXml = "<Eq><FieldRef Name=\"Author\"/>" +
"<Value>Name</Value></Eq>" +
"<Gt><FieldRef Name=\"Number\"/>" +
"<Value>Number</Value></Gt>";
spQuery.Where = ndQuery;
myRequest.dsQuery.Query = spQuery;
try
{
XmlNode myNode = myStsAd.Query(myRequest);
MessageBox.Show(myNode.OuterXml);
}
catch (System.Web.Services.Protocols.SoapException ex)
{
MessageBox.Show(ex.Message + ex.StackTrace);
}
When I run the code, I get the following exception:
The expression in the 'select' attribute must select a list.
at
System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage
message, WebResponse response, Stream responseStream, Boolean
asyncCall)
at System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters)
at
ThoughtProcessProject.com.myCompany.sharepoint1.StsAdapter.Query(QueryRequest
queryRequest) in
c:\\projects\\SharePoint\\InfoPath\\ThoughtProcessProject\\Web
References\\com.myCompany.sharepoint1\\Reference.cs:line 127
at ThoughtProcessProject.FormCode.SearchForOldItems(Int32 swVerIdx,
Int32 releaseNum) in
c:\\projects\\SharePoint\\InfoPath\\ThoughtProcessProject\\FormCode.cs:line
220"
Any ideas?