日期:2014-05-18  浏览次数:20417 次

对象不能从 DBNull 转换为其他类型。
对象不能从 DBNull 转换为其他类型。 
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。 

异常详细信息: System.InvalidCastException: 对象不能从 DBNull 转换为其他类型。

源错误: 


行 124: <asp:TemplateField HeaderText="加权退保保费" ItemStyle-HorizontalAlign="Center">
行 125: <ItemTemplate>
行 126: <asp:Label ID="lblTotals_1" runat="server" Text='<%#Convert.ToDecimal(Eval("Weighted_Surrender_Premium"))%>'></asp:Label>
行 127: </ItemTemplate>
行 128: <FooterTemplate>
 
 
报错原因是查询结果没有数据,求解:当查询结果没有数据时,如何不报错???

------解决方案--------------------
实在不想用sql解决的话 就写个三目运算也可以
C# code
<%#Convert.ToDecimal(Eval("Weighted_Surrender_Premium")==DBNull.Value?0:Eval("Weighted_Surrender_Premium"))%>