关于此异常的SO有很多问题。但它们对我都没有用。
这是我的存储过程:
CREATE PROCEDURE HolidayStandardMappingInsert
@HolidayID bigint,
@StandatdID smallint
AS
BEGIN
INSERT INTO HolidayStandardMapping VALUES(@HolidayID,@StandatdID)
END
GO
这是我的代码:
int StdId = 0;
SqlCommand cmdS = new SqlCommand("HolidayStandardMappingInsert", conn);
cmdS.CommandType = CommandType.StoredProcedure;
for (int i = 0; i < cblStandard.Items.Count; i++)
{
if (cblStandard.Items[i].Selected == true)
{
if (StdId == 0)
StdId = Convert.ToInt32(cblStandard.Items[i].Value);
else
StdId = Convert.ToInt32(cblStandard.Items[i].Value);
cmdS.Parameters.AddWithValue("@HolidayID", NewRecordID);
cmdS.Parameters.AddWithValue("@StandatdID", StdId);
if (conn.State == ConnectionState.Open)
{
conn.Close();
}
conn.Open();
int res = cmdS.ExecuteNonQuery();
if (res > 0)
{
}
}
}
告诉我缺少什么?
答案 0 :(得分:3)
您使用相同的 $( '[name="mytax"]' ).change(function() {
//add here your formula
});
进行多次插入,因此SqlCommnad object
添加了previously
也存在。
因此要么创建一个新的parameters
内部循环,要么SqlCommnad object
prevoius参数。
这是clear
以前添加参数的方法。
Clear
答案 1 :(得分:2)
您正在循环中添加参数。 所以在第二次迭代之后,你的命令有4个参数。
答案 2 :(得分:0)
每次在循环中添加cmdS.Parameters.AddWithValue。所以在第一次迭代之后,它已经有2个参数。
在进入循环之前,您需要通过cmdS.Parameters.Clear()清除命令参数。