2016-09-30 77 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,但我希望它返回爲0如果爲NULL。我把它放到一個只讀的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