问题描述:当搜索结果有数据的时候一切正常,当数据库里没搜索条件的数据的时候报错,附代码DataSet xfs = sqlhelper.ExecutDataset("select sum(sj) sj1,sum(lc) lc1 from main where datediff(d,date,'" + hf1.Value + "')<=0 and datediff(d,date,'" + hf2.Value + "')>=0");
if (xfs != null && xfs.Tables[0].Rows.Count > 0)
{
DataTable dt = xfs.Tables[0];
DataRow dr=xfs.Tables[0].Rows[0];
sjxfs = Convert.ToDecimal(dr["sj1"].ToString());
lcxfs = Convert.ToDecimal(dr["lc1"].ToString()); list1.DataSource = dt;
list1.DataBind();
}异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 74: DataTable dt = xfs.Tables[0];
行 75: DataRow dr=xfs.Tables[0].Rows[0];
行 76: sjxfs = Convert.ToDecimal(dr["sj1"].ToString());76行出错,数据库里数据都是float类型的,求解决办法
if (xfs != null && xfs.Tables[0].Rows.Count > 0)
{
DataTable dt = xfs.Tables[0];
DataRow dr=xfs.Tables[0].Rows[0];
sjxfs = Convert.ToDecimal(dr["sj1"].ToString());
lcxfs = Convert.ToDecimal(dr["lc1"].ToString()); list1.DataSource = dt;
list1.DataBind();
}异常详细信息: System.FormatException: 输入字符串的格式不正确。源错误:
行 74: DataTable dt = xfs.Tables[0];
行 75: DataRow dr=xfs.Tables[0].Rows[0];
行 76: sjxfs = Convert.ToDecimal(dr["sj1"].ToString());76行出错,数据库里数据都是float类型的,求解决办法
你把出错时候的SQL语句拿出来放SQL管理器里执行一下不就知道了……
你把出错时候的SQL语句拿出来放SQL管理器里执行一下不就知道了……
OK,我每天试下,多谢
你把dbnull转换成数字当然要出错了
数据库都没查出来,为null,Convert.ToDecimal(dr["sj1"].ToString()转换当然报错哦,
你确定这样写sql语句,是没得数据??还是你的sql有问题,即使查出来为空,你也应该改判断
if(为空)
{
model中这个sj1字段赋值为0
}
很简单,这样修改就没有问题了。记得全部给分我。
if(dr.IsNull("sj1"))
{
为空时
}
else
{
convert
}
if(!dr["sj1"].DBNull)
{}
改用
decimal num=0;
decimal.TryParse(dr["sj1"].ToString(),out num);
sjxfs=num;