多次运行进程时出现.NET错误消息

时间:2013-11-12 11:02:33

标签: c# .net winforms

我有一个奇怪的错误消息,即在Visual Studio中运行我的WinForms c#app或\ bin \ release目录中的可执行文件时,数据表不包含我正在引用(设置)的字段。

我知道该字段在那里,当我运行多次使用数据表对象的进程时,我只收到错误消息。

当我单击“继续”(在可执行文件中)时,应用程序将继续运行,没有任何问题,并且应该执行的操作。

以下是代码段:

dtCreditCases.Rows.Clear();

    foreach (task_creditcases item in creditCases)
    {    

        DataRow drCases = dtCreditCases.NewRow();

        // Then add the new row to the collection.
        drCases["Case ID"] = item.c_Id;
        drCases["Case Number"] = item.c_Name; 
        drCases["Case Topic"] = "Credit Case";
        drCases["Case SubTopic"] = "Credit Case";
        drCases["Account Number"] = item.c_EquationCustomerNumber

代码在drCases["Case Number"] = item.c_Name;行停止执行,消息 {“列'案例ID'不属于表格。”}

内部异常为空。

这是一个例外细节:

  

System.ArgumentException未被用户代码Message = Column处理   '案例ID'不属于表格。来源= System.Data
  堆栈跟踪:          在System.Data.DataRow.GetDataColumn(String columnName)          at System.Data.DataRow.set_Item(String columnName,Object value)          在SFDetachifier.SFDetachifier.bgProcessing_Production_ProgressChanged(对象   发件人,ProgressChangedEventArgs e)in   C:\ Dev \ SFDetachifier_2013 \ SFDetachifier \ SFDetachifier.cs:第1304行          在System.ComponentModel.BackgroundWorker.OnProgressChanged(ProgressChangedEventArgs)   E)          在System.ComponentModel.BackgroundWorker.ProgressReporter(Object arg)
  的InnerException:

我知道数据表不是问题,其他地方肯定会发生一些事情,我想知道是不是因为数据表被重用了。

我的进程完成后,是否应该在所有对象上显式调用dispose?

1 个答案:

答案 0 :(得分:0)

我担心你在第二次使用表之前对dtCreditCases.Columns做了一些更改。程序执行它应该做的事情的原因是你可以将代码部分放在'try / catch'中(只是猜测)。

此问题的另一个原因是数据表由多线程程序中的2个线程共享。