为什么不';t输出参数功

本文关键字:输出 参数 为什么不 | 更新日期: 2023-09-27 17:59:04

我从sql中的存储过程返回一个输出参数,即FormNo。它成功返回,我检查了过程,但在c#代码中它没有返回任何内容。

public static Boolean InsertAppliedWorks(int NITNo, int WorkNo, out int FormNo, int ContractorID, decimal FinancialMoney, int OfficeID, int OrgID)
{
    Boolean status = false;
    ClsDatabaseManager dbManager = ClsDatabaseManager.InitializeDbManager(Constants.Databases.TendersConnection);
    try
    {
        FormNo = 0;
        dbManager.Open();
        dbManager.CreateParameters(7);
        dbManager.AddParameters(0, "@NIT_No", NITNo);
        dbManager.AddParameters(1, "@Work_No", WorkNo);
        dbManager.AddParameters(2, "@FormNo", FormNo, ParameterDirection.Output);
        dbManager.AddParameters(3, "@Contractor_ID", ContractorID);
        dbManager.AddParameters(4, "@FinancialMoney", FinancialMoney);
        dbManager.AddParameters(5, "@Organization_ID", OrgID );
        dbManager.AddParameters(6, "@Office_ID", OfficeID);
        status = dbManager.ExecuteNonQuery("InsertAppliedWorks").ToBool();
    }
    catch (Exception ex)
    {
        throw ex;
    }
    finally
    {
        dbManager.Close();
        dbManager.Dispose();
    }
    return status;
}

代码:

protected void btnSavePrint_Click(object sender, EventArgs e)
{
    try
    {
        ClsTender.InsertAppliedWorks(NitNo, WorkNo, out formno, ContractorID, Cost.ToDecimal(), bp.LoginMainOfficeID, bp.LoginOrganizationID);
        int TestFormNo = formno;
        Response.Redirect("/forms/general/TenderPrint.aspx?"+"NitNo="+SharedUtility.EncryptURL(NitNo.ToString())+"&WorkNo="+SharedUtility.EncryptURL(WorkNo.ToString()));
    }
}

现在它在FormNo 中不返回任何内容

请帮我做这件事。它浪费了很多时间,但仍然没有任何迹象,

为什么不';t输出参数功

您需要使用以下命令来检索值:

FormNo = Convert.ToInt32(dbManager.Parameters["@FormNo"].Value);