C# &引用;无法使用已与其基础RCW分离的COM对象。”;循环时

C# &引用;无法使用已与其基础RCW分离的COM对象。”;循环时,c#,visual-studio-2017,com,C#,Visual Studio 2017,Com,我试图从excel2的一列中读取数据,并将其与excel1中的同一列进行比较,以查找excel1中丢失的记录,以更新数据库,但在尝试循环时,我遇到了错误“已与其基础RCW分离的COM对象无法使用” 示例代码如下所示: public void missingAssayCheck() { if(File.Exists(generatedExcelDir)) { Excel.Application excelApp=新的Excel.Application(); 字符串路径=txtPath.Text;

我试图从excel2的一列中读取数据,并将其与excel1中的同一列进行比较,以查找excel1中丢失的记录,以更新数据库,但在尝试循环时,我遇到了错误“已与其基础RCW分离的COM对象无法使用”

示例代码如下所示:

public void missingAssayCheck()
{
if(File.Exists(generatedExcelDir))
{
Excel.Application excelApp=新的Excel.Application();
字符串路径=txtPath.Text;
Excel工作簿Excel工作簿;
工作手册;
工作簿=空;
Excel工作表Excel工作表;
Excel.范围excelRange;
int rowCount=0;
uint processId=0;
mysqlServer=txtDatabase.Text;
lbl.Text=“检查是否已删除”;
lblLog2.Text=“”;
工作簿=excelApp.工作簿;
Excel工作簿=工作簿。打开(路径);
excelWorksheet=(Excel.Worksheet)excelWorkbook.ActiveSheet;
excelRange=excelWorksheet.UsedRange;
rowCount=excelRange.Rows.Count;
GetWindowThreadProcessId(新的IntPtr(excelApp.Hwnd),out进程ID);
范围;
范围=空;

对于(int i=2;i),这不是您应该如何使用Excel COM对象。请参见Hans在此处给出的明确答案:和此处