[SqlSugar] 达梦存储过程参数为out类型时,输出结果为null报错 返回

SqlSugar 沟通中
1 275
该叫什么 monga 发布于2026/5/20
悬赏:0 飞吻

错误信息:Dm.DmException:“6081,the value is null.Can not use this function when the value is null” 


环境:sqlsugarcore5.1.4.214,sqlsugarcore.dm8.8.1


代码:

SugarParameter[] parameter = new SugarParameter[4];
parameter[0] = new CInterfaceDBQueryParameter("p_id", null, ParameterDirection.Output, System.Data.DbType.Int32, null);
parameter[1] = new CInterfaceDBQueryParameter("p_name", null, ParameterDirection.Output, System.Data.DbType.String, null);
parameter[2] = new CInterfaceDBQueryParameter("p_date", null, ParameterDirection.Output, System.Data.DbType.DateTime, null);
parameter[3] = new CInterfaceDBQueryParameter("p_res", null, ParameterDirection.Output, System.Data.DbType.Int32, null);
……
db.Ado.UseStoredProcedure().GetDataTable(storedProcedureName, parameter.ToArray());//报错的函数


存储过程:

CREATE OR REPLACE PROCEDURE Test_Out_Null (
    p_id   OUT INT,
    p_name OUT VARCHAR(10),
    p_date OUT DATETIME,
    p_res  OUT INT
) AS
BEGIN
    p_id := NULL;
    set p_name = NULL;
    set p_date = NULL;
    set p_res = NULL;
END;


问了AI说是整形、日期等类型出参必须要有值,否则达梦驱动在转换的时候就会报错,说返回类型改为string或者object可以避免,但我试了之后都还是报错,必须得赋值才行


请问这个问题要怎么解决呢,想要查出来是null就想输出null


热忱回答1

  • fate sta fate sta VIP0
    2026/5/21

    你用ADO.NET测试,如果ADO.NET可以我给你SQLSUGAR写法

    0 回复