2012-01-30 35 views
1

我正在使用企業庫查詢數據庫並使用GetStoredProcCommand來查詢數據庫。當我想使用輸出參數時出現問題。使用企業庫和添加輸出參數不同

DbCommand cmd = db.GetStoredProcCommand("storedProcedureName", param1, param2, param3, ...); 

現在,如果我要添加輸出參數,我不能簡單地寫db.AddOutParameter(cmd, "@TotalNumber", DbType.Int64, sizeof(Int64));

我將不得不使用db.AddInParameter(cmd, "param1", DbType.Int32, param1);

如果你有10個輸入參數添加所有的輸入參數,在你的代碼中逐個添加它們並不是很好,你只是希望你可以回頭在同一個函數調用中一次添加它們。有沒有辦法做到這一點,同時也使用輸出參數?

回答

0

基本上所有你需要做的是通過一個null(或任何真的)的輸出參數,你不必與db.AddOutParameter

從意見打擾DbCommand GetStoredProcCommand(string storedProcedureName, params object[] parameterValues)

參數存儲過程將被發現並且按照位置順序分配值。

他們沒有告訴你的是數據庫參數count是不一樣的PARAMS你會得到一個Resources.ExceptionMessageParameterMatchFailure因此,對於每一輸出DB參數,你仍然需要通過財產以後。

他們也沒有告訴你的是,當它賦值時它檢查數據庫參數的方向。如果它的輸出只是跳過你的價值。