2016-07-28 62 views
1

我正在从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

请帮助我在此。它浪费了大量的时间,仍然没有迹象,

回答

0

您需要使用下面的检索值:

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

错误不能转换字符串类型为bool – Cuckoo

+0

@Cuckoo你的输出参数是'FormNo' ,你需要得到它的价值。检查编辑。 – user3185569