2015-03-31 26 views
1

我有這個疑問如何從lambda查詢中刪除DBnull值?

 DataSetTest DB = new DataSetTest(); 
     DataSetTestTableAdapters.TESTTableAdapter ADPT = new DataSetTestTableAdapters.TESTTableAdapter(); 
     ADPT.Fill(DB.TEST); 

     try 
     { 
      var xx = DB.TEST.Where(s => s.Name != null).Select(s => s.Name).ToList(); 
     } 
     catch (Exception ex) 
     { 
      var x = ex; 
     } 

但它給我這個錯誤

{"The value for column 'Name' in table 'TEST' is DBNull."} 

所以,我怎麼能允許的DBNull值的列表或刪除其許多在此先感謝來回任何幫助

+0

要檢查'你可以使用'Convert.IsDBNull DbNull'(s.Name )' – Magnus 2015-03-31 07:20:13

回答

2

謝謝你我的全部手指出來只是用IsNameNull()方法

var xx = DB.TEST.Where(s => !s.IsNameNull()).Select(s => s.Name).ToList(); 
0
var xx = DB.TEST.Where(s => !string.IsNullOrEmpty(Convert.ToString(s.Name))).Select(s => s.Name).ToList(); 
+0

它給了我這個錯誤{「表'TEST'中列'Name'的值爲DBNull。」} – Fadi 2015-03-31 06:27:14

+0

Convert.ToString()將數值轉換爲NULL,如果數據庫給予NULL它不會給你一個錯誤這裏where子句用來檢查它是否爲NULL。 – 2015-03-31 06:34:53

0

試試這個:

var xx = DB.TEST.Where(s => !string.IsNullOrEmpty(s.Name.ToString())).Select(s => s.Name).ToList(); 

s.NameDBNull然後ToString()將返回string.Empty

+0

在ToString()後面缺少1的結尾< - add) – Aizen 2015-03-31 07:13:15