2011-12-09 15 views
1

我試圖填充以下LINQ語句如何使ASP下拉列表接受空值的數據綁定

var beskeder = from b in db.beskeds 
      join v in db.vedhaeftedeFilers on b.beskedId equals v.beskedId into x 
      from v in x.DefaultIfEmpty() 
      select new 
      { 
       beskedId = b.beskedId, 
       tekst = b.tekst, 
       dato = b.dato, 
       behandlet = b.behandlet, 
       medlemsid = b.medlemsid, 
       dokumentid = b.dokumentId, 
       filid = v.filId, 
       filnavn = v.filnavn, 
       filtype = v.filtype, 
       data = v.data, 
       DisplayText = "Besked fra bruger " + b.medlemsid.ToString() + ", " + b.dato 
      }; 

DropDownList1.DataSource = beskeder; 
DropDownList1.DataValueField = "medlemsid"; 
DropDownList1.DataTextField = "DisplayText"; 
DropDownList1.DataBind(); 

一個下拉列表的時候,但我得到

空值不能被分配到一個errormessage的類型爲System.Int32的成員,它是不可爲空的值類型。

我知道這是因爲它不會接受空值。我如何讓dropdownlist接受空值。我很感激語法示例

回答

1

因爲您使用的是LINQ投影(您創建了新的匿名類型),所以我建議您更改策略並刪除具有空值的項目,或爲它們設置默認值。例如,你可以這樣寫:

select new 
{ 
     medlemsid = b.medlemsid == null ? 0 : b.medlemsid 
}; 
在投影

,以空值轉換爲0

+0

或'b.medlemsid? 0' – canon

相關問題