[英].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.