c# – 将INT传递给存储过程失败

c# – 将INT传递给存储过程失败,第1张

概述我正在尝试将CommandArgument作为int传递给我的存储过程,但我得到: Failed to convert parameter value from a String to a Int32 即使它在我通过它之前被转换了…… C#代码: cmd.CommandText = "deleteProd";int delprodID = Convert.ToInt32(e.CommandArg 我正在尝试将CommandArgument作为int传递给我的存储过程,但我得到:

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传递给存储过程失败所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/langs/1252509.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2022-06-07
下一篇2022-06-07

发表评论

登录后才能评论

评论列表(0条)

    保存