簡體   English   中英

LINQ to Datatable-如何在linq查詢where子句中添加if條件?

[英]LINQ to Datatable - How to add an if condition in linq query where clause?

OleDbCommand commandSec = new OleDbCommand();
commandSec.CommandText = "SELECT [SectionName], [Strand], [ReqGrade], [GradeLevel] FROM tbl_section";
OleDbDataAdapter daSec = new OleDbDataAdapter(commandSec);
commandSec.Connection = conn;
DataTable dt = new DataTable();
DataSet ds = new DataSet();
daSec.Fill(dt);
daSec.Fill(ds, "tbl_section");
var section = (from DataRow dr in dt.AsEnumerable()
    where (double)dr["ReqGrade"] >=  Convert.ToDouble(txt_genave.Text) &&
    (string)dr["GradeLevel"] == gradelevel
    select (string)dr["SectionName"]).FirstOrDefault();

我收到一個InvalidCastException: Specified cast it not valid.

我需要根據他/她的GradeLevel和ReqGrade為特定學生插入一個班級部分。

我認為您的問題可能在這里:

from DataRow dr in dt.AsEnumerable()

嘗試:

from DataRow dr in dt.Rows.AsEnumerable()

DataTable本身不是可枚舉的,但其中的行是可枚舉的。

我能夠重現您的問題,並通過更改來避免錯誤

where (double)dr["ReqGrade"] >= ...

where Convert.ToDouble(dr["ReqGrade"]) >= ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM