主從表獲取資料,比方說學生表、成績表
成績表里面的分數可以是A,B,C,D 也可以數字
我需要判斷分數>90的學生有哪些
應該怎么處理
因為分數的定義為string型別,所以判斷一致有問題,
無法通過!有沒有對Lamda運算式比較擅長的,給指點指點!
uj5u.com熱心網友回復:
問答為什么不能用積分了,只能用money了?uj5u.com熱心網友回復:
用linq嗎?直接 db.學生表.any(p=>p.分數>90).name
uj5u.com熱心網友回復:
所有表結構發出來,不是什么ABCD。uj5u.com熱心網友回復:
分數是string型別的,不能用>90判斷
uj5u.com熱心網友回復:
Where(x => x.Score.CompareTo("90") >= 0)不知道這個是否符合你的要求
uj5u.com熱心網友回復:
最簡單的例子,學生表
學生編號 學生姓名
01 張三
02 李四
成績表
學生編號 科目 成績
01 語文 90
01 數學 B
02 語文 99
02 數學 96
03 語文 A
成績是string型別,我要成績語文成績>90 的人
uj5u.com熱心網友回復:
不行,那個類似與比較字串是否相等的,謝謝uj5u.com熱心網友回復:
直接用sql不行么uj5u.com熱心網友回復:
問題就是寫的時候沒寫兼容,暫時只用用linq轉,一頭包,哈哈
uj5u.com熱心網友回復:
改一下成績欄位型別啊,哪有用string的uj5u.com熱心網友回復:
如果存的有A,B,C,D呢,哈哈
uj5u.com熱心網友回復:
還是改資料庫吧,你這A代表多少分呢,應該分數和AB分開兩列uj5u.com熱心網友回復:
大于90,那成績是A算不算uj5u.com熱心網友回復:
你確定我的方式不行?不妨運行試試看uj5u.com熱心網友回復:
int num=0;
var query=from a in db.學生表
join b in db.成績表
on a.學生編號 equals b.學生編號
where int.TryParse(b.成績, out num) && num>90
select new
{
name=a.學生姓名
};
uj5u.com熱心網友回復:
試過了不行的
uj5u.com熱心網友回復:
為什么要轉成int?估計你這樣執行的時候會報錯
int num=0;
var query=from a in db.學生表
join b in db.成績表
on a.學生編號 equals b.學生編號
where b.成績.CompareTo("90") >= 0
select new
{
name=a.學生姓名
};
執行看下,因為我現在的專案就是這樣使用的,跟你的需求差不多
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/276502.html
標籤:C#
上一篇:docker中運行netcore程式參考了一個非托管dll提示Unable to load shared library
