none
对DataTable进行select,获取到DataRow[],我想根据DataRow[]在DataTable中获取存在的行号 RRS feed

  • 问题

  • 对DataTable进行select,获取到DataRow[],我想根据DataRow[]在DataTable中进行查找,获取DataRow[]中的行在DataTable中的行数。目前没有找到有效的解决办法,我主要是想获取到相同的值,DataRow[]目前我只是做一个判断是否存在于条件数据,DataTable.Row[i]里边的行数可能是变化的,那么我想根据筛选出来的值进行更改值,下面是一部分代码。

     int rowCount = tmp07.GetRowCount() - 1;
                int rowSpan = 1;
                for (int i = 0; i < rowCount; i++)
                {
                    DataRow dataRow = table.NewRow();
                    for (int j = 0; j < cellCount; j++)
                    {
                        dataRow[j] = string.IsNullOrEmpty(tmp07.GetCellValue(i, j)) ? "" : tmp07.GetCellValue(i, j).ToString();
                    }
                    DataRow[] dr = table.Select("OrderNum='" + dataRow["OrderNum"] + "'");
                    if (dr.Length > 0)
                    {
                        table.Rows[i - rowSpan]["SetNum"] = table.Rows[i - rowSpan]["SetNum"] + "*" + dataRow["SetNum"];
                        rowSpan++;
                    }
                    else
                    {
                        table.Rows.Add(dataRow);
                    }
                }

    这样的弊端是不关联的订单会出错,那么我现在根据行号来进行值改变就不会有问题,请大家指教
    2016年1月5日 9:42

答案

  • 您好 PoolSlide,

    >> 对DataTable进行select,获取到DataRow[],我想根据DataRow[]在DataTable中获取存在的行号

    您可以使用IndexOf方法来获取存在的行号,以下代码供你参考。

    DataTable dataTable = new DataTable();
    //对dataTable进行筛选
    DataRow[] rows = dataTable.Select("...");
    //获取rows中第一个元素所在的索引
    int index = dataTable.Rows.IndexOf(rows[0]);
    Best Regards,
    Li Wang

    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 PoolSlide 2016年1月6日 7:49
    2016年1月6日 5:17

全部回复

  • 您好 PoolSlide,

    >> 对DataTable进行select,获取到DataRow[],我想根据DataRow[]在DataTable中获取存在的行号

    您可以使用IndexOf方法来获取存在的行号,以下代码供你参考。

    DataTable dataTable = new DataTable();
    //对dataTable进行筛选
    DataRow[] rows = dataTable.Select("...");
    //获取rows中第一个元素所在的索引
    int index = dataTable.Rows.IndexOf(rows[0]);
    Best Regards,
    Li Wang

    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    • 已标记为答案 PoolSlide 2016年1月6日 7:49
    2016年1月6日 5:17
  • 你好,非常感谢你的回复,完美的解决我的问题,多谢
    2016年1月6日 7:50