簡體   English   中英

當DB值為NULL時將整數值顯示為零的問題

[英]issue on displaying integer value to zero when DB value is NULL

大家好,我已經寫了下面的代碼,將數據庫中的整數值顯示如下:

<asp:TemplateField>
<ItemTemplate>
<asp:Label ID="lblTotalReplies" runat="server" Text='<%#Eval("TotalReplies")==System.DBNull ?  "0" : Convert.ToInt16(Eval("TotalReplies")).ToString() %>'></asp:Label>&nbsp;&nbsp;Replies</li>
</ItemTemplate>
</asp:TemplateField>

但是我遇到一個錯誤,因為System.DBNull' is a 'type', which is not valid in the given context可以有人幫助我如何在數據庫中具有空值時顯示0 我不想使用rowdatabound或其他綁定

DBNull.Value比較

<asp:Label ID="lblTotalReplies" runat="server" 
     Text='<%#Eval("TotalReplies") ==System.DBNull.Value ?  "0" : 
           Convert.ToInt16(Eval("TotalReplies")).ToString() %>'>
</asp:Label>&nbsp;&nbsp;Replies</li>

DBNull是類型,而Value屬性

表示DBNull類的唯一實例。

這是真的。 它是一種。 也許您正在尋找靜態Value字段?

Eval("TotalReplies")==System.DBNull.Value

表示DBNull類的唯一實例。


Ravi的評論指出,如果您的SQL當前看起來像這樣:

SELECT TotalReplies, ...

然后,您可以將其更改為:

SELECT ISNULL(TotalReplies,0) as TotalReplies, ...

我通常使用COALESCE而不是ISNULL ,在這種情況下,它看起來相同。

System.DBNull類型具有一個靜態字段Value ,您應該將其與之進行比較:

<asp:TemplateField>
    <ItemTemplate>
        <asp:Label ID="lblTotalReplies" runat="server" Text='<%#Eval("TotalReplies") == System.DBNull.Value ?  "0" : Convert.ToInt16(Eval("TotalReplies")).ToString() %>'></asp:Label>&nbsp;&nbsp;Replies</li>
    </ItemTemplate>
</asp:TemplateField>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM