0

我有一个包含几个强类型数据表的 DataSet。我使用复制操作将模式和数据都复制到新的 DataSet 中,如下所示:

DataSet dsNew = dsOld.Copy();

EmployeeDataTable dtEmpl = (EmployeeDataTable) dsNew.Tables["Employee"];
string sColName = dtEmpl.Columns[0].ColumnName; // this line correctly assigns 'EmployeeId' to sColName

EmployeeRow row = dtEmpl[0];
int id = row.EmployeeId;

最后一行抛出“System.ArgumentException”类型的异常!

4

2 回答 2

0

要在异常处理中访问您的对象,请以这种方式编写代码:

DataSet dsNew = dsOld.Copy();
try
{
... your code ...
}
catch(Exception Ex)
{
 ... here you can access dsNew ...
}
于 2013-06-26T13:46:59.417 回答
0

尝试按名称访问列。

像这样:

int id = (int)row["EmployeeId"];`

如果这不起作用,请通过查看dtEmpl.Columns集合来确保表中有正确的列。

出现问题的原因可能是您正在复制数据集并使用副本而不是原始数据集。如果是这种情况,那么使用索引器而不是属性访问列可能会起作用。

于 2013-06-26T14:03:29.593 回答