早上好,我是C#的新手,我对我遇到的错误有疑问,并且阅读微软文档对我来说并不是很清楚。我有一个DAO类,它在数据库中创建一个sql查询,其返回值是一个数值(8.33),我使用CreateSqlQuery函数运行这个sql,如下所示:
public class TableNameDAO : ContextoHQL<TableName>
{
public double QueryExample(DateTime argDataIni)
{
double result = 0;
ISession sessao = ObterSessao();
var query = sessao.CreateSQLQuery(
@"SELECT CAST((Z.GEN + Z.NGEN)/Z.GEN AS NUMERIC(20,2)) AS RESULT
FROM (
SELECT CAST(SUM(CASE WHEN S.TX_DESCRICAO = 'GENERICO' THEN W.QD_VENDA ELSE 0 END)
AS NUMERIC(20, 2)) AS GEN,
CAST(SUM(CASE WHEN S.TX_DESCRICAO <> 'GENERICO' AND S.CD_GRUPO = 32
THEN W.QD_VENDA ELSE 0 END) AS NUMERIC(20, 2)) AS NGEN
FROM TABLE1 AS W, TABLE2 AS P, TABLE3 AS S, TABLE4 AS G
WHERE P.ID_PRODUTO = W.CD_PRODUTO
AND G.ID_GRUPO = S.CD_GRUPO
AND S.ID_SUBGRUPO = P.CD_SUBGRUPO
And W.DT_REFERENCIA>=:DataIni
) AS Z")
.SetParameter("DataIni", argDataIni);
result = Convert.ToDouble(query.UniqueResult());
return result;
}
}
通过调试代码所做的测试,我发现问题出现在返回query.UniqueResult ()
中,因为它返回null。我想知道是否有人遇到过这个问题以及可能的解决办法,谢谢。