我得到「indexOutofRangeException發生」錯誤 - 「FixedActual」indexOutofRangeException發生
這是我使用任何幫助的代碼會被挪用。
SqlDataReader dataReader = null;
SqlCommand Scmd = new SqlCommand("SalesGetRecalcOrderItemCosts", this._connection);
Scmd.CommandType = System.Data.CommandType.StoredProcedure;
Scmd.Transaction = currentTransaction;
Scmd.Parameters.AddWithValue("@OrderNumber", ItemSODBOM.SONO); //SoItem.fSnoNo
Scmd.Parameters.AddWithValue("@UTCompFCostRef", sUTCompFCostRef);//utcomp.fcostref
Scmd.Parameters.AddWithValue("@UTCompFCostEst", sUTCompFCostEst);//utcomp.fcostest
Scmd.Parameters.AddWithValue("@UTCompFCostMType", sUTCompFCostMType);//utcomp.fcostmtype
Scmd.Parameters.AddWithValue("@OrderItemNumber", finumber); //SoItem.finumber
Scmd.Parameters.AddWithValue("@OrderType", "S");//Sales Order
Scmd.Parameters.AddWithValue("@UseStandardTransitCost", "0");
Scmd.Parameters.AddWithValue("@GetExtendedCosts", "0");
dataReader = Scmd.ExecuteReader();
while (dataReader.Read())
{
using (System.Data.SqlClient.SqlCommand updateCommand = this._connection.CreateCommand())
{
string sql = @"
UPDATE SOITEM SET
FFIXACT = @FixedActual, FLABACT = @LaborActual, FMATLACT = @MaterialActual,
FOTHRACT = @OtherActual, FOVHDACT= @OverheadActual, FRTGSETUPA= @SetupActual,
FSUBACT = @SubcontractActual, FTOOLACT = @ToolActual,FSTANDPART = 0,
FTOTPTIME = @TotalPTime, FTOTSTIME = @TotalSTime, FULABCOST1 = @ULaborCost1
WHERE FSONO = @FSONO and FINUMBER = @FINUM
";
updateCommand.CommandText = sql;
updateCommand.CommandType = System.Data.CommandType.Text;
updateCommand.Transaction = currentTransaction;
updateCommand.Parameters.AddWithValue("@FixedActual", dataReader["FixedActual"]); //This is where i am getting error
updateCommand.Parameters.AddWithValue("@LaborActual", dataReader["LaborActual"]);
updateCommand.Parameters.AddWithValue("@MaterialActual", dataReader["MaterialActual"]);
updateCommand.Parameters.AddWithValue("@OtherActual", dataReader["OtherActual"]);
updateCommand.Parameters.AddWithValue("@OverheadActual", dataReader["OverheadActual"]);
updateCommand.Parameters.AddWithValue("@SetupActual", dataReader["SetupActual"]);
updateCommand.Parameters.AddWithValue("@SubcontractActual", dataReader["SubcontractActual"]);
updateCommand.Parameters.AddWithValue("@ToolActual", dataReader["ToolActual"]);
updateCommand.Parameters.AddWithValue("@TotalPTime", dataReader["TotalPTime"]);
updateCommand.Parameters.AddWithValue("@TotalSTime", dataReader["TotalSTime"]);
updateCommand.Parameters.AddWithValue("@ULaborCost1", dataReader["ULaborCost1"]);
updateCommand.Parameters.AddWithValue("@FSONO", ItemSODBOM.SONO);
updateCommand.Parameters.AddWithValue("@FINUM", finumber);
updateCommand.ExecuteNonQuery();
}
}
需要更多的信息。哪一行是發生的異常?你有什麼試圖解決它?出於好奇, – thecoop 2010-10-12 09:05:24
,你想在這裏做什麼?您正在執行SPROC,讀取結果,然後將這些結果傳遞給UPDATE命令?爲什麼要做2次往返?爲什麼不直接在SPROC中進行更新?關於錯誤,您是否調試過SPROC的結果?數據讀取器中是否存在「FixedActual」? – RPM1984 2010-10-12 09:06:13
你確定你的存儲過程返回一個FixedActual字段嗎? – 2010-10-12 09:07:14