1

これは C# Winforms です。

このコードには文字列のリストがあります:

List<string> WaveAndPickFields = new List<string>(new string[] { "ID", "TransactionID", "OrderNumber", "WarehouseID", "StoreOrderNumber", "OrderType", "CustomerID", "CustomerPONumber", "DepartmentCode", "LoadNumber", "ReverseLoadSequence", "BOLNumber", "MasterBOLNumber", "ProNumber", "Carrier", "CarrierSCAC", "FreightTerms", "RushOrderFlag", "OrderEntryDate", "ExpectedCarrierArrivalDate", "DatePromised", "OrderWeight", "OrderCubicVolume", "OrderCartonCounts", "ShippingShort", "PrepaidFreight", "CODAmount", "InsuranceAmount", "PIPAmount", "TotalFreightCost", "ShipToCustomerCode", "ShipToName", "ShipToAddress1", "ShipToAddress2", "ShipToAddress3", "ShipToCity", "ShipToState", "ShipToZipCode", "ShipToCountryCode", "ShipToCountryName", "BillToCustomerCode", "BillToName", "BillToAddress1", "BillToAddress2", "BillToAddress3", "BillToCity", "BillToState", "BillToZipCode", "BillToCountryCode", "BillToCountryName", "DeliveryAddressName", "DeliveryAddress1", "DeliveryAddress2", "DeliveryAddress3", "DeliveryCity", "DeliveryState", "DeliveryZipCode", "DeliveryCountryCode", "DeliveryCountryName", "DeliveryPhone", "BillFreightCustomerCode", "BillFreightAddressName", "BillFreightAddress1", "BillFreightAddress2", "BillFreightAddress3", "BillFreightCity", "BillFreightState", "BillFreightZipCode", "BillFreightCountryCode", "BillFreightCountryName", "CartonLabel", "ShipVerificationFlag", "PartialOrderFlag", "EarliestShipDate", "LatestShipDate", "EarliestDeliveryDate", "LatestDeliveryDate", "PromoCode", "Route", "Stop", "ToteFlag", "Status" });

私がやりたいことは、このコードをループして、一連のフィールドをデータテーブルに追加することだけです。私はこのコードでそれをやっています:

foreach (string field in WaveAndPickFields)
{
    dtWaveAndPicks.Columns.Add(field);
}

私も試しました:

for (int i = 0; i < WaveAndPickFields.Count; i++)
{
    DataColumn column = new DataColumn(WaveAndPickFields[i]);
    dtWaveAndPicks.Columns.Add(column);
}

なんらかの理由で、これらの行は実行されているように見えますが、関数全体が停止し、例外エラーなしでは何も実行されません。

dtWaveAndPicks.Columns.Add(field);

と:

dtWaveAndPicks.Columns.Add(column);

なぜこれが起こっているのか誰にも分かりますか?私にとってうまくいく代替手段は、列を追加する行を持つことです。問題は、このようなループが可能だったときに、フィールドを追加するために 80 行以上必要としたくなかったことです。

4

1 に答える 1

1

ここで何が起こっているかを判断するには、windbg を使用することを強くお勧めします。これを使用したことがない場合は、少し気が遠くなるかもしれませんが、非常に優れたチュートリアルがあります (特に Tess からはこちらを参照) 。

Windbg をインストールしたら、ハングが発生したときにタスク マネージャーを介してプロセス ダンプを取得します。windbg でダンプ ファイルを開きます。

次に、実行.symfix c:\sosしてシンボルパスを修正します

次の読み込み sos.loadby sos mscorwks

最後に、実行中のスレッドで例外をチェックします.foreach (ex {!dumpheap -type Exception -short}){.echo "********************************";!pe –nested ${ex} }

これを試してみて、うまくいく方法を見てください

于 2013-06-13T14:59:41.567 に答える