2016-09-30 5 views
0

저는 Linq을 제거하려고합니다. 나는 거의 성공하지 못했고 대부분의 기사는 도움이되지 않는 C#을위한 것입니다.Linq, SQL 및 ISNULL

다음 작업을 수행하려고합니다.

Dim query = From r In db.eq_list 
       Join s In db.interview_main On r.CLIENTCODE Equals s.CLIENTCODE And r.CONTROL Equals s.CONTROL 
       Select New With {r.UserName, r.CONTROL, r.CLIENTCODE, r.CLIENTLOCATION, r.IDATETIME, r.FIRSTNAME, 
        r.LASTNAME, If(String.IsNullOrEmpty(s.Code), 0, s.Code)} 


    dgvOnHold.DataSource = query.ToList 

문제는 IF 부분입니다. 이 부분은 데이터베이스에서 NULL이 될 수 있지만 NULL 인 경우 0으로 반환됩니다. 나는 이것을 읽기 전용 Datagridview에 넣을 것이다. 원래의 SQL은 다음과 같습니다.

SELECT r.ID,r.UserName,r.CONTROL,r.CLIENTCODE,r.CLIENTLOCATION,r.IDATETIME,r.FIRSTNAME,r.LASTNAME,ISNULL(s.CODE,0) AS CODE 
FROM system.eq_list AS r 
LEFT JOIN interview.main AS s ON r.CLIENTCODE = s.CLIENTCODE AND r.CONTROL = s.CONTROL; 

답변

1

현재로서는 확인할 수 없지만 어때요?

Dim query = From r In db.eq_list 
      Join s In db.interview_main On r.CLIENTCODE Equals s.CLIENTCODE And r.CONTROL Equals s.CONTROL 
      Select New With {r.UserName, r.CONTROL, r.CLIENTCODE, r.CLIENTLOCATION, r.IDATETIME, r.FIRSTNAME, 
       r.LASTNAME, If(s.Code is Nothing, 0, s.Code)} 


dgvOnHold.DataSource = query.ToList 
+0

오류가 발생합니다. 익명 형식 멤버 이름은 인수없이 정규화 된 이름에서만 유추됩니다. - IF 문 앞에 .memberof =를 추가했습니다. 즉각적인 오류는 해결되었지만 지금은 데이터를 DataGridView에 넣을 수 없습니다. – Kayot