为什么输出参数不起作用?

时间:2016-07-28 06:42:09

标签: c# sql asp.net webforms output

我从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中没有返回任何内容

请帮我解决这个问题。浪费了很多时间,但仍然没有任何迹象,

1 个答案:

答案 0 :(得分:0)

您需要使用以下内容来检索值:

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