如何查找行号DataTable

时间:2015-07-02 14:34:32

标签: c#

我在Web应用程序上工作,我必须在dataTable中找到行位置。请帮我解决这个问题。 这是windows应用程序代码示例

 pos = paesiBindingSource.Find("ISOCode", country);

我在webApp中尝试做的是

pos = Convert.ToInt32(PerfDBCountryTable.Select(country, "ISOCode").ToString());

2 个答案:

答案 0 :(得分:0)

没有直接属性返回表中DataRow的索引。

但您可以使用DataRowCollection.IndexOf

DataRow[] rows = PerfDBCountryTable.Select("Country = " + country, "ISOCode");
if(rows.Length > 0)
{
    int index = PerfDBCountryTable.Rows.IndexOf(rows[0]);
}

另一种方法是使用Linq-To-DataTable

int firstMatchingRowIndex = PerfDBCountryTable.AsEnumerable()
    .Select((row, index) => new { row, index })
    .Where(x => x.row.Field<string>("Country") == country)
    .Select(x => x.index)
    .DefaultIfEmpty(-1)
    .First();

答案 1 :(得分:0)

int rowNumber = 0; 
var pos = PerfDBCountryTable.Select(country, "ISOCode");

rowNumber = PerfDBCountryTable.Rows.IndexOf(pos);