C#Data Table Rows值为空字符串,但是有Null值

时间:2016-08-16 08:52:27

标签: c# mysql .net datatable null

当我查询没有记录的sqlStr时,dt.Rows.Count的值总是等于1,并且dt.Rows [0] [0]和dt.Rows [0] [1]的值是空字符串。

但我在数据库中执行sqlStr。它是空的。 Here is the database screenshot 我不知道为什么会这样。

string sqlStr = "select SUM(userIncome),SUM(userSpend) from tb_billlist where userPhone = '" + userPhone + "' and " +
     "billTime between '" + beginDate + "' and '" + endDate + "'";
//execute sql
DataTable dt = new DataTable();
dt = MysqlHelper.ExecuteDataTable(sqlStr);
if (dt.Rows.Count > 0) 
{
    userBillInfo.userAllIncome = (float.Parse)(dt.Rows[0][0].ToString());
    userBillInfo.userAllSpend = (float.Parse)(dt.Rows[0][1].ToString());
}
else
{
    userBillInfo.userAllIncome = 0;
    userBillInfo.userAllSpend = 0;
}

1 个答案:

答案 0 :(得分:-1)

要实现此目标,您可以更改查询,如果是“空值之和”,则返回值为0:

string sqlStr = "select COALESCE(SUM(userIncome), 0), COALESCE(SUM(userSpend), 0) from tb_billlist where userPhone = '" + userPhone + "' and " +
     "billTime between '" + beginDate + "' and '" + endDate + "'";
//execute sql
...

因此,你将把0作为字段的返回值。