c# - 在DataTable c#中通过itemArray值查找DataRow
问题描述
我想datarow
根据itemArray
值从 DataTable 中获取。数据表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;
}
}
}
}
解决方案
DataTable dtSchema = connExcel.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
foreach (DataTable item in set.Tables) // set is a DataSet
{
if (item.Rows.Count <= 0)
{
var MatchedRows = from s in dtSchema.AsEnumerable()
where s.Field<string>("TABLE_NAME") == item.ToString()
select s;
foreach (var item in MatchedRows)
{
dtSchema.Rows.Remove(item);
break;
}
dtSchema.AcceptChanges();
}
}
推荐阅读
- javascript - 鼠标(自动)悬停在按钮上后如何自动按下按钮
- javascript - Javascript 日期从 1 小时开始
- r - R - 一次自动适应多张工作表的excel列宽
- javascript - 构造函数在异步函数中绑定 this 不起作用?
- nestjs - Nestjs:如果 --no-spec 用于禁用规范文件生成,如何生成“spec.ts”文件
- html - ag-Grid - 是否可以为每一行创建一个浮动菜单?
- android - 接听电话需要 api 级别 11(当前最小值为 1)
- nginx - Nginx 无法通过 Ansible 重启
- php - 有没有办法摆脱 PHP 中复杂变量的丑陋重复提及?
- python - 如何在一个列表中得出有效的方法