我想一个CommandArgument
为int
传递给我的存储过程,但我得到:传递INT到存储过程失败
未能参数值从字符串转换成的Int32
即使之前我通过它,它被转换......
C#代码:
cmd.CommandText = "deleteProd";
int delprodID = Convert.ToInt32(e.CommandArgument.ToString());
Response.Write(delprodID);
cmd.Parameters.Add(new SqlParameter("@prodID", SqlDbType.Int)).Value = delprodID;
cmd.CommandType = CommandType.StoredProcedure;
sqlTools.cmdToNonQuery(cmd)
我的Response.Write
显示我在delprodID
中有正确的ID。
存储过程:
ALTER PROCEDURE dbo.deleteProd @prodID int
AS
IF @prodID > 0
BEGIN
DELETE FROM products WHERE prodID = @prodID
END
可能重复吗? http://stackoverflow.com/questions/11099141/failed-to-convert-parameter-value-from-a-string-to-a-int32-while-executing-store – CodeLikeBeaker
“cmdToNonQuery”做什么?它可能是消耗命令参数吗? –
使用Sql Server Profiler并跟踪DataBase的内容。 –