有没有办法从数据表中获取datarow而不使用foreach

时间:2014-05-09 08:44:37

标签: asp.net-mvc asp.net-mvc-4 foreach

控制器

foreach (DataRow temp in act.Rows)
{
    _oResolutionModel.activityNo = temp["ActivityID"].ToString();
    _oResolutionModel.assignTechnician = temp["TechNo"].ToString();
    _oResolutionModel.recommendation = temp["RECOMMENDATION"].ToString();
    _oResolutionModel.jobStart = (DateTime)temp["JobStart"];
    _oResolutionModel.jobEnd = (DateTime)temp["JobEnd"];
        _oResolutionFacade.setResolutionID(_oResolutionModel.activityNo);
        DataTable res = _oResolutionFacade.getResolution(_oAppSetting.ConnectionString);
        foreach (DataRow x in res.Rows)
        {
            _oResolutionModel.solution = x["Resolution"].ToString();
            _oResolutionModel.remarks = x["Remarks"].ToString();
            _oResolutionList.Add(_oResolutionModel);
            break;
        }
    _oResolutionList.Add(_oResolutionModel);
    break;
}

在这里我的 _oResolutionList 计数= 1,意味着其中有两个数据并且它复制了第一个数据。我想在 _oResolutionList 中只有1个数据。我是否需要在内部Foreach中添加一些代码,或者我应该在其上更改某些内容。

或者您可以建议我如何删除第二个数据条目。?

1 个答案:

答案 0 :(得分:0)

而不是使用foreach循环。您也可以先检查无效,然后再分配。 你也可以这样做:

  _oResolutionFacade.setResolutionID(_oResolutionModel.activityNo);
    DataTable res = _oResolutionFacade.getResolution(_oAppSetting.ConnectionString);
     _oResolutionModel.solution = res.Rows[0]["Resolution"].ToString() ?? string.Empty; //To make sure that if it is null it will assign to an empty string
     _oResolutionModel.remarks = res.Rows[0]["Remarks"].ToString()?? string.Empty;

你有很多解决方案可以解决这个问题。 希望它能帮到你