2016-03-01 29 views
0

我有一些ADO.Net代碼,如下所示,它成功地在DB中執行SP,而它在tenantId中引發異常,請指導我。command.Parameters.GetValue無效的轉換異常<long>

  command.Parameters.Input.BigInt(ParameterConstants.TenantId) 
            .BigInt(ParameterConstants.PartyId, tenant.PartyId) 
            .Varchar(ParameterConstants.TenantCode, tenant.TenantCode) 
            .BigInt(ParameterConstants.PharmaId, tenant.PharmaId) 
            .BigInt(ParameterConstants.UserId, userProfileId); 

      command.ExecuteNonQuery(); 

      var tenantId = command.Parameters.GetValue<long>(ParameterConstants.TenantId); 

var tenantId它拋出投例外System.InvalidCastExceptio ... 確切異常Specified cast is not valid.

An exception of type 'System.InvalidCastException' occurred in ...Data.dll but was not handled in user code 

Additional information: Specified cast is not valid. 
+0

您能否向我們提供完整的例外信息? – andreasnico

+0

我添加了確切的異常。 –

+0

如果添加輸出參數,該怎麼辦? – alsafoo

回答

0

我的猜測將是數據庫類型和類類型TenantId不兼容。例如,字符串vs int與long。

+0

不是@TenantId bigint = null, –

1

您的GetValue<long>方法不可能處理NULL值。 GetValue<>可能是您或其他人編寫的自定義方法(而不是Microsoft),所以我不知道如何解決此問題。您可以嘗試:

var tenantId = command.Parameters.GetValue<long?>(ParameterConstants.TenantId);