C#出现“System.ArgumentException”异常很明显就是参数异常的意思,关键字眼是“Additional information: 列“OLDOUTNO”不属于表 ”具体异常如下:
An unhandled exception of type 'System.ArgumentException' occurred in System.Data.dll
Additional information: 列“OLDOUTNO”不属于表 。
如图所示,你会发现你跟一个DataRow字段赋值的时候,就会出现这样的异常了:
这种类型的异常主要是因为DataRow行数据里面并没有“OLDOUTNO”这个字段,其实也就是我们GridView列表的DataTable数据源对象里面没有“OLDOUTNO”表头(column),于是我们需要给它添加一个Column字段进去。
解决方案:
1::给Gridview的dataSource,也就是datatable对象添加column字段的方法大概如下,本案例中的dtMain就是datatable对象:
if (!dtMain.Columns.Contains("OLDOUTNO")) { dtMain.Columns.Add("OLDOUTNO", typeof(string)); }
这样再“masterRow["OLDOUTNO"] = tempOutno;”这样赋值就不会出现“Additional information: 列“OLDOUTNO”不属于表 ”的错误了。
2:如果你添加完之后想将“OLDOUTNO”这个字段去掉,可以使用如下方法:
if (dtMain.Columns.Contains("OLDOUTNO")) { dtMain.Columns.Remove("OLDOUTNO"); }
完美解决!如果觉得有帮助,可以点击下方的分享按钮!