iT邦幫忙

0

想請問這個該如何修改?

https://ithelp.ithome.com.tw/upload/images/20190328/20110132lDOJPSZ7um.jpg

這是我表單中的其中一欄,輸入護理師編號後按下儲存,會顯示護理師的名字

以下是我的寫法

      public EMPLOYEE FindEmployeeName( string cid ,string empId)
        {
            return _repo.EMPLOYEE.Where(x => x.CID == cid && x.EMP_ID == empId).FirstOrDefault<EMPLOYEE>();
        
        }

但這樣又有瑕疵,所以我改成這樣

public EMPLOYEE FindEmployeeName( string cid ,string empId)
        {          
            EMPLOYEE error = new EMPLOYEE();
            var Name = _repo.EMPLOYEE.FirstOrDefault(x => x.CID == cid && x.EMP_ID == empId);
            if (Name != null)
            {
                return Name;
            }
            else
            {
                error.EMP_NAME = "編號錯誤";
                return error;
            }
       
        }

這樣我若輸入錯誤的編號,他儲存後姓名就會顯示編號錯誤,可是這樣我感覺還是怪怪
的,我應該是要儲存失敗然後旁邊要提示編號錯誤才對,請問這個我該如何修改?

看更多先前的討論...收起先前的討論...
froce iT邦高手 1 級 ‧ 2019-03-28 11:22:46 檢舉
依你這樣提問...
我覺得你應該拿這個案子的一部份金額來開個版聚才對。XD
小魚 iT邦高手 1 級 ‧ 2019-03-28 13:35:28 檢舉
直接外包給我就好了.
tenno081 iT邦新手 4 級 ‧ 2019-03-28 14:56:30 檢舉
抱歉,我實力不足才這樣問
優悠 iT邦新手 4 級 ‧ 2019-03-28 15:24:12 檢舉
米歐大大的寫法更簡略,若不考慮其他因素,可以用他的。
Homura iT邦高手 2 級 ‧ 2019-03-29 09:03:55 檢舉
怎麼不用Model驗證?@@
tenno081 iT邦新手 4 級 ‧ 2019-03-29 15:24:44 檢舉
因為我主要是想即時驗證,就是你輸入完編號就會顯示姓名這樣

2 個回答

0
優悠
iT邦新手 4 級 ‧ 2019-03-28 10:37:58
最佳解答
if (Name != null)
            {
                return Name;
            }
            else
            {
                error.EMP_NAME = "編號錯誤";
                return error;
            }
            
            //可以變這樣
            if (Name != null)
            {
                error= Name;
            }
            else
            {
                error.EMP_NAME = "編號錯誤";
            }
                return error;

補充:第一段 EMPLOYEE error = new EMPLOYEE();,error 改名為 ReEMP,會比較順(命名習慣)

2
米歐
iT邦新手 5 級 ‧ 2019-03-28 11:49:24

可以改成使用 ?? 運算子,如果第一個值是 null 則傳回後面的值。

public EMPLOYEE FindEmployeeName( string cid ,string empId) {
  return _repo.EMPLOYEE
    .Where(x => x.CID == cid && x.EMP_ID == empId)
    .FirstOrDefault() ?? new EMPLOYEE { EMP_NAME = "編號錯誤" };
}

我要發表回答

立即登入回答