
Failed to convert parameter value from a String to a 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 intASIF @prodID > 0BEGIN DELETE FROM products WHERE prodID = @prodIDEND解决方法 3个月前我遇到了同样的问题,无法解释发生了什么.不知何故,您必须显式声明参数,设置它,然后将其添加到Parameters属性.它只发生在sql Server上,而不是在Access上发生.我知道这基本上是相同的代码,但这对我有用,不要问我为什么:
sqlParameter param = new sqlParameter("@prodID",sqlDbType.Int);param.Value = delprodID;cmd.Parameters.Add(param); 总结 以上是内存溢出为你收集整理的c# – 将INT传递给存储过程失败全部内容,希望文章能够帮你解决c# – 将INT传递给存储过程失败所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)