2016-09-30 17 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