【发布时间】:2020-11-28 18:52:08
【问题描述】:
我想根据itemArray 值从DataTable 中获取datarow。数据表dtSchema 由GetOleDbSchemaTable() 填充。每行ItemArray 都有 Excel 工作表名称。我正在使用 foreach 循环进行操作。可以用更好的方法来完成吗?
DataTable dtSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
foreach (DataTable item in set.Tables) // set is a DataSet
{
int i = dtSchema.Columns["TABLE_NAME"].Ordinal;
if (item.Rows.Count <= 0)
{
foreach (DataRow row in dtSchema.Rows)
{
if (row.Field<string>(i) == item.ToString()) // Finding data row
{
dtSchema.Rows.Remove(row);
break;
}
}
}
}
【问题讨论】:
-
您的代码是否按您预期的方式工作?您可能会做的一件事是,在对行进行 foreach 之前,获取“TABLE_NAME”列的列索引。然后您可以按序数而不是按名称访问数据
-
代码正在运行。现在我已经更新了查找列序号的代码。检查它@Flydog57