簡體   English   中英

多次運行進程時的.NET錯誤消息

[英].NET error message when running a process more than once

我有一個奇怪的錯誤消息,當在Visual Studio或\\ bin \\ release目錄中的可執行文件中運行WinForms c#應用程序時,數據表不包含我正在引用(設置)的字段。

我知道該字段在那里,並且僅在運行多次使用數據表對象的進程時才收到錯誤消息。

當我單擊“繼續”(在可執行文件中)時,應用程序繼續運行,沒有問題,並且應執行的操作。

這是一個代碼片段:

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;行上執行drCases["Case Number"] = item.c_Name; 消息為{“ Column'Case ID'的列不屬於表。”}

內部Exception為null。

這是觀念的細節:

用戶代碼未處理System.ArgumentException消息=列“案例ID”不屬於table。 源= System.Data
StackTrace:位於C:\\ Dev \\ SFDetachifier_2013 \\ SFDetachifier \\ SFDetachifier.cs:System.ComponentModel.BackgroundWorker.OnProgressChanged(ProgressChangedEventArgs e)處的System.ComponentModel.BackgroundWorker.ProgressReporter(Object arg)行1304
InnerException:

我知道數據表不是問題,在其他地方一定有事情發生,我想知道是否是因為數據表正在被重用。

完成處理后,是否應該在所有對象上顯式調用dispose?

恐怕您在第二次使用該表之前已經對dtCreditCases.Columns進行了一些更改。 程序執行其應做的原因是,您可以將代碼段放在“ try / catch”中(只是猜測)。

此問題的另一個原因是數據表由多線程程序中的2個線程共享。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM