我正在尝试从我们的C#Windows桌面应用程序从Outlook返回一个日历项。它不断返回此错误: Redemption.RDOItems 断言失败:字段数== 1。
我在创建的Outlook加载项中使用了类似的代码,并且工作正常。主要区别是filterprefix。 在AddIn中,我使用:
string filterprefix =“ [” + OurCustomProperty.OurItemId +“] ='”;
var filter1 = filterprefix + parentItem.NeedlesId +“'”;
var findItem = folder.Items.Find(filter1);
但是此代码不适用于我们的桌面应用程序。
这是来自桌面应用程序的代码,该代码返回错误:
约会。Id包含我们在创建项目时设置的有效值。
string Filterprefix =“ @SQL =” +“ http://schemas.microsoft.com/mapi/string/ {00020329-0000-0000-C000-000000000046} /OurCustomProperty.OurItemId/0x0000001f ='”;
RDOSession rdoSession =新的RDOSession();
rdoSession.Logon(“”,“”,false,false,null,false);
RDOFolder文件夹RDO = rdoSession.GetDefaultFolder(rdoDefaultFolders.olFolderCalendar);
var filter1 = filterprefix +约会。Id+“'”;
string ls_find = Filterprefix +约会。Id+“'”;
var findItem = folderRDO.Items.Find(ls_find);
我尝试了几种语法变体,但似乎无法正确处理。 我还尝试过使用排序然后限制,但也没有运气。
谢谢,里克
答案 0 :(得分:0)
RDOItems.Find
使用一条SQL语句,请不要使用@SQL=
前缀-它是OOM特定的。另外,请不要忘记在DASL属性名称中加上双引号:
"http://schemas.microsoft.com/mapi/string/{00020329-0000-0000-C000-000000000046}/OurCustomProperty.OurItemId/0x0000001f" = '<some value>'