2014-10-30 103 views
0

我有兩列,如名稱-varchar(50)和有效-boolen如何在DataTable c#中選擇布爾值?

---------------- 
Name Valid 
---------------- 
John True 
John False 
---------------- 

我只有名稱是「約翰」和有效的做法是「真」,選擇一個數據庫表。我嘗試了下面的代碼,但它沒有返回任何東西。在這方面請幫助我。

conList = conTable.Select(string.Format(@"Name='{0}' AND Valid='True'", "John")).ToList(); 

回答

3

您可以使用LINQ(以誠數據表):

var rows = from row in conTable.AsEnumerable() 
      where row.Field<bool>("Valid") && row.Field<string>("Name") == "John" 
      select row; 

如果你想從結果使用了新的DataTable

DataTable filtered = rows.CopyToDataTable(); 

或可以循環中的行foreach或與ToArrayToList創建不同的集合。

All in one的通過方法的語法(沒有更有效):

DataTable filtered = conTable.AsEnumerable() 
    .Where(row => row.Field<bool>("Valid") && row.Field<string>("Name") == "John") 
    .CopyToDataTable(); 
0
conList = conTable.Select(string.Format(@"Name='{0}' AND Valid", "John")).ToList(); 
0

你可以使用LINQ了點。示例如下。

List<DataRow> dataRows = (from DataRow dr in yourTable.Rows 
          where (bool)dr["Valid"] == true && (string)dr["Name"] == "John" 
          select dr).ToList(); 

dataRows.ForEach(p => Console.WriteLine("Name : {0}, Valid : {1}", p["Name"], p["Valid"]));