【问题标题】:Checking value in column foreach row检查每行列中的值
【发布时间】:2015-07-09 03:12:04
【问题描述】:

DataTable (dt) 存储检索到的 carID 值并使其在 DataTable 中存储 3 行,我还有另一个名为 dt2 的 DataTable,它也存储 carID 和 make,我试图循环遍历dt 查看存储在 dt 中的任何 carID 是否存在于 dt2 的任何行中,这是我目前所拥有的:

DataTable dt = w.getUserCars(userID);

foreach (DataRow dr in dt.Rows)
{
  string carID = dr["carID"].ToString();

}

我该怎么做?

【问题讨论】:

    标签: c# asp.net datatable rows


    【解决方案1】:

    您应该能够使用DataTable.Select() 方法实现此目的。你走在正确的轨道上。您只需在dt2 中添加查找Row(s) 的方法即可。

    DataTable dt = w.getUserCars(userID);
    DataRow[] foundRows;
    
    foreach (DataRow dr in dt.Rows)
    {
      string carID = dr["carID"].ToString();
    
      foundRows = dt2.Select("carID = " + carID);
      // do stuff here with foundRows
    
      foreach (DataRow r in foundRows)
      {
        r.Delete();
      }
    }
    

    【讨论】:

    • 难道不能做一个 IF 语句来检查 d1 中的任何 carID 是否存在于 dt2 中吗?
    • if (foundRows.Count > 0) 会给你你需要的结果。或者您可以像其他一些答案所建议的那样使用 LINQ。
    • 好吧,我需要专门获取一行,以便删除它
    • 我将在我的答案中添加一个编辑,向您展示如何完成此操作。
    • "DataTable 不包含删除的定义"
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-15
    • 2021-09-25
    • 1970-01-01
    • 2011-04-07
    • 1970-01-01
    • 2019-11-06
    相关资源
    最近更新 更多