检索C#数据表中的特定数据行

本文关键字:数据 数据表 检索 | 更新日期: 2023-09-27 17:58:10

我在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链接在一起。

检索C#数据表中的特定数据行

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

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

如果ID没有设置为PK(或者您想查询另一个字段),您可以使用Linq查询

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

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

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

您可以使用for each在数据表中循环,当ID等于10时,您可以执行想要的

应该是这样的:

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