在C#Datatable中检索特定数据行

时间:2013-02-08 00:05:21

标签: c# asp.net

我在C#中有一个名为“table”的数据表,如下所示:。

 ID   Value
 10    A
 20    B
 30    C

(它确实有大约1200行,但我试图简化它) 我的目标是能够在此数据表中打印特定行。例如,如果我想打印第二行(行索引1),我将使用以下内容:

Response.Write(table.Rows[1]["Value"].ToString());

这打印出我想要的值“B”,但有没有办法使用“ID”列打印该特定值而不是使用行索引1.我希望能够链接ID 10和值B以某种方式。

3 个答案:

答案 0 :(得分:2)

如果将ID定义为主键,则应通过其B键查找ID

Response.Write(table.Rows.Find(20).["Value"].ToString());

答案 1 :(得分:0)

您可以使用foreach查看数据表,当ID等于10时,您就可以执行您想要的操作

会是这样的:

for each row as datarow in datatable.rows
   if row.Items["ID"] = 10 Then
    //do something
   end if

答案 2 :(得分:0)

如果ID未设置为PK(或者您想查询其他字段),则可以使用Linq查询

var chosenRow = (from row in table.AsEnumerable()
                    where row.Field<int>("ID") == 10
                    select row).First();

chosenRow是第一个满足DataRow子句中设置的条件的where对象。所以你可以:

Response.Write(chosenRow["Value"].ToString());