2016-07-28 5 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

エラーが出力パラメータ@Cuckoo – Cuckoo

+0

をBOOLするタイプの文字列を変換することはできませんが、 'FormNo'ではありません、あなたはその価値を得る必要があります。編集を確認してください。 – user3185569

関連する問題