2012-06-11 54 views
0

我的數據表中有五行(列AccountId,Name,Email,Address),我想在AccountId的基礎上獲得一個特定的行,因爲所有五行都有不同的AccountID。我想根據AccountID進行過濾。我的意思是我只需要Data表中的一行來根據AccountId進行處理。如何過濾數據表中的特定值

如何從包含我已通過的AccountId的數據表中獲取特定行?

回答

1

三個選項:

  • 使用DataTable.Select,提供過濾表達式
  • 遍歷行自己
  • 使用LINQ,與數據表擴展

個人而言,我會建議使用最後一個選項(LINQ):

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

謝謝。選擇聲明真的有幫助..再次感謝你... –

0

你看過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();  
    } 
} 
相關問題