谁能解释我为什么得到System.ArgumentException
?代码:
var dsResult = new SecurityYieldsData();//DataSet
var syData = (SecurityYieldsData)base.PrepareCAData(ctx, swiftMessage, caData);
SecurityYieldOptionsData optionsData = GetCaOption(ctx, syData.SecurityYields[0], message.Body);
syData.Merge(optionsData);
dsResult.Merge(syData);
var temp1 = (SecurityYieldOptionsData.SecurityYieldOptionsDataTable)manager.SecurityYieldOptions().GetTable(dsResult);
var temp2 = (SecurityYieldOptionsData.SecurityYieldOptionsDataTable)manager.SecurityYieldOptions().GetTable(dsResult).Copy();
int t1 = temp1[0].OptionNumber;//'temp1[0].OptionNumber' threw an exception of type 'System.ArgumentException'
int t1_1 = Convert.ToInt32(temp1[0]["OptionNumber"]);// Ok
int t2 = temp2[0].OptionNumber;// Ok
int t3 = optionsData.SecurityYieldOptions[0].OptionNumber;// Ok
在 temp1 和 temp2 的 DataSet Visualizer 中,我可以看到数据存在,但如果 t1 我得到了例外,如果创建 temp1 的副本它工作正常(参见 temp2)。