日期:2014-05-16  浏览次数:20427 次

无法将system.decimal强制转换为类型system.string
从数据库读出数据绑定到repeater中,如绑定字段<%#Eval("Charge")%>,后台读数据是用的linq,这个还不熟悉,Charge字段是decimal类型的,读出来没有进行转换,运行就出现如题错误。然后我在前台后台都进行测试,转化为string类型:
前台:<%#Eval("Charge").toString()%>
后台:Charge.toString()
或者全用Convert.ToString(),都是出错。
不知道这个地方如何转换?另,linq读出的数据,如果重名怎么使用as重新命名?
------解决方案--------------------
前台:<%#getName(Eval("Charge"))%>
后台:
加一个方法
public String getName(object charge)
{
    return charge.ToString();


------解决方案--------------------
检查一下值有没有null的情况。null tostring肯定是要报错的
------解决方案--------------------
<%#Eval("Charge")==null?"0":Eval("Charge")%>这样呢

------解决方案--------------------

<%# Convert.ToDecimal(Eval("Charge")).toString()%>
试试