2017-05-04 38 views
-2

誤差凸起查詢體必須與選擇子句或一組子句結束...的DataGridView

查詢體必須與選擇子句或一組子句結束

List<DataGridViewRow> selectedRows = 
    (from row in DataGridView1.Rows.Cast<DataGridViewRow>() 
    where Convert.ToBoolean(row.Cells("CheckBoxColumn").Value) == true).ToList(); 
+2

您的查詢沒有SELECT子句。 – Chad

+0

那麼,你會得到這個錯誤,因爲*「一個查詢正文必須以select子句或group子句結尾」* ...爲什麼不加一個? –

回答

1

你應該改變這種

from row in DataGridView1.Rows.Cast<DataGridViewRow>() 
where Convert.ToBoolean(row.Cells("CheckBoxColumn").Value) == true 

這個

from row in DataGridView1.Rows.Cast<DataGridViewRow>() 
where Convert.ToBoolean(row.Cells("CheckBoxColumn").Value) == true 
select row 

值得注意的是,你將有相同的結果,如果你在下面的語法寫整個查詢:

var selectedRows = DataGridView1.Rows 
           .Cast<DataGridViewRow>() 
           .Where(row => Convert.ToBoolean(row.Cells("CheckBoxColumn").Value) == true) 
           .ToList(); 
+0

我得到這個錯誤不能隱式轉換類型datagridview''。存在明確的轉換(您是否缺少演員?) –

1

當寫在查詢語法LINQ查詢它必須有一個select clause它:

var result = from item in collection 
      select item; 

你的情況:

var result = (from row in DataGridView1.Rows.Cast<DataGridViewRow>() 
       where Convert.ToBoolean(row.Cells("CheckBoxColumn").Value) 
       select row).ToList(); 

請注意,做Convert.ToBoolean(row.Cells("CheckBoxColumn").Value) == true是多餘的,因爲Convert.ToBoolean(row.Cells("CheckBoxColumn").Value)已經是布爾值

相關問題