我遇到以下过滤器的问题。
string filter = String.Format(
"[Start] = '{0}' AND [Subject] = '{1}' AND [BillingInformation] = 'Test'",
time.ToShortDateString() + " " + time.ToShortTimeString(), subject);
return items.Find(filter) as Microsoft.Office.Interop.Outlook.AppointmentItem;
我希望能够查找项目,即使我的主题同时包含引号和/或撇号。我尝试过:
string filter = string.Format(
"[Start] = \"{0}\" AND [Subject] = \"{1}\" AND [BillingInformation] = \"Test\"",
string.Concat(time.ToShortDateString(), " ", time.ToShortTimeString()),
subject);
return items.Find(filter) as Microsoft.Office.Interop.Outlook.AppointmentItem;
不幸的是,这会破坏我的引号。而且我甚至不确定,如果现在可以使用撇号......它似乎可以工作。
我如何定义过滤器,所以我的主题都可以使用引号和撇号?
答案 0 :(得分:0)
几天后试图解决这个问题:
这是最终的解决方案,对我来说很好用:
string filter = String.Format(
"[Start] = '{0}' AND [Subject] = '{1}' AND [BillingInformation] = 'Test'",
time.ToShortDateString() + " " + time.ToShortTimeString(),
subject.Replace("'", "''"));
return items.Find(filter) as Microsoft.Office.Interop.Outlook.AppointmentItem;
这样可以正常工作。你必须使用两次单引号。
非破坏性空间还存在另一个小问题。当你添加ror尝试在outlook中查找约会时,请确保没有任何非破坏空格。添加或过滤项目时删除它们。对于有类似问题的人来说,这是我的小建议。