如何从数据表中筛选特定值

本文关键字:筛选 数据表 | 更新日期: 2023-09-27 18:36:51

我的数据表中有五行(包含"帐户ID"、"名称"、"电子邮件"、"地址"列),我想根据帐户 ID 获取特定行,因为所有五行都有不同的 AccountID。我想根据帐户 ID 对其进行过滤。我的意思是我只需要数据表中的一行就可以基于 AccountId 进行处理。

如何从包含已传递的帐户 ID 的数据表中获取特定行?

如何从数据表中筛选特定值

三个选项:

  • 使用 DataTable.Select ,提供过滤器表达式
  • 自行迭代
  • 将 LINQ 与数据表扩展一起使用

就个人而言,我建议使用最后一个选项(LINQ):

var row = table.AsEnumerable()
               .FirstOrDefault(r => r.Field<string>("AccountID") == accountID);
if (row != null)
{
    // Use the row
}

你研究过 DataTable.Select() 方法吗?

http://msdn.microsoft.com/en-us/library/system.data.datatable.select(v=vs.100).aspx

public class DataTableExample 
{     
    public static void Main()     
    {         
        //adding up a new datatable         
        DataTable dtEmployee = new DataTable("Employee");            
        //adding up 3 columns to datatable         
        dtEmployee.Columns.Add("ID", typeof(int));         
        dtEmployee.Columns.Add("Name", typeof(string));         
        dtEmployee.Columns.Add("Salary", typeof(double));           
        //adding up rows to the datatable         
        dtEmployee.Rows.Add(52, "Human1", 21000);         
        dtEmployee.Rows.Add(63, "Human2", 22000);         
        dtEmployee.Rows.Add(72, "Human3", 23000);         
        dtEmployee.Rows.Add(110,"Human4", 24000);           
        // sorting the datatable basedon salary in descending order        
        DataRow[] rows= dtEmployee.Select(string.Empty,"Salary desc");           
        //foreach datatable         
        foreach (DataRow row in rows)         
        { 
            Console.WriteLine(row["ID"].ToString() + ":" + row["Name"].ToString() + ":" + row["Salary"].ToString());         
        }           
        Console.ReadLine();     
    }   
}
数组

示例:http://msdn.microsoft.com/en-us/library/f6dh4x2h(VS.80).aspx

单个对象的示例:http://msdn.microsoft.com/en-us/library/ydd48eyk

只需使用这样的东西:

DataTable dt = new DataTable();
DataRow dr = dt.Rows.Find(accntID);

希望这对你有所帮助。