2012-01-13 29 views
1

我試圖給下拉菜單添加一個標題。 問題是如果數據爲空,它會自動更新爲0. 創建數據行時不會發生這種情況。 日期類型是int32。 有趣的是,我可以插入null,但我不能更新爲空。asp.net dropdown null值存儲0而不是null

我的解決方案是添加兩個listitems。 一個是value =「」。這是用於初始數據。 (創建) 另一個是值=「0」。這是爲了更新後。 但這不是很好的解決方案。

當我更新數據時,整數如何存儲0而不是null? 看來可能當我創建的行存儲空...

<asp:DropDownList ID="addl" runat="server" SelectedValue='<%# Bind("a") %>'> 
    <asp:ListItem Value="" Text="-Select-"></asp:ListItem> 
    <asp:ListItem Value="1">test1</asp:ListItem> 
    <asp:ListItem Value="2">test2</asp:ListItem>      
    <asp:ListItem Value="0" Text="-Select-"></asp:ListItem> 
</asp:DropDownList> 

什麼將是下拉菜單標題的最佳解決方案,如果該數據類型是整數? 如果它是字符串,我可以簡單地添加value =「」並且只是時間。 整數存儲0,如果它爲空,我還必須創建空值,以避免編輯模式中的錯誤。

回答

2

Int32不是Nullable類型,默認情況下將等於0(即使未初始化)。嘗試使用可空的Int32?,或使用其他索引來指示創建選項。

0

我不太知道什麼int你要更新,但如果它是你可以控制你可以看看從標準int將其更改爲一個可空int的變量。這可能是因爲改變這個簡單:

int i; 

這樣的:在SQL Server

int? i; 
+0

數據類型爲int。更新參數是 shinya 2012-01-15 18:42:23

+0

如果是插入參數,我可以插入null。 shinya 2012-01-15 18:43:35