我有一个由以下代码引起的COMException
MSProject.Application mspApp;
bool result = mspApp.SelectColumn(Constants.ACTUALS_RECENT_INDEX, Missing.Value, Missing.Value, Missing.Value);
mspApp.EditClear(Missing.Value, Missing.Value, Missing.Value, Missing.Value);
结果的值为true
。
以下是例外:
System.Runtime.InteropServices.COMException(0x000003EC):该方法发生意外错误。
at System.RuntimeType.ForwardCallToInvokeMember(String memberName,BindingFlags flags,Object target,Int32 [] aWrapperTypes,MessageData& msgData)
at Microsoft.Office.Interop.MSProject._MSProject.EditClear(Object Contents,Object Formats,Object Notes,Object Hyperlinks)
有人知道这个例外的原因吗?
答案 0 :(得分:0)
听起来被选中的列是一个只读字段,例如ID,唯一ID,项目等。
确保选中的列是您真正想要的列。您可以通过在运行时创建表(并应用它)来完成此操作,这样您就可以确信用户没有更改活动视图和/或基础表。
答案 1 :(得分:0)
根本原因是在调用EditClear函数时应用了自定义过滤器。此过滤器将导致表中没有数据。如果不应用过滤器,问题就会消失。