给存储过程不能将0作为参数?

遇到一个有趣的问题:

cmd.CommandText = "getClasses";


 cmd.Parameters.Add(new SqlParameter("@PageIndex", 0));

结果报错:过程 'getClasses' 需要参数 '@PageIndex',但未提供该参数。

我晕明明这样定义的啊:

。。。PROCEDURE [dbo].[getClasses]
@PageIndex int,
@PageSize int,
@Total int out

....

找了很久的原因,结果在使用cmd.Parameters.Add(new SqlParameter("@PageIndex","0"));

成功了!

难道真的不能将0做为存储过程的参数吗?

baidu一艘,发现:

int a=0;

cmd.Parameters.Add(new SqlParameter("@PageIndex",a));

成功!

奇怪的MS。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
回答: 存储过程中的参数有三种类型: IN参数、OUT参数和INOUT参数。其中,IN参数是默认模式,调用程序必须将参数传递给存储过程,并且IN参数的值在存储过程结束后仍保留其原始值。存储过程只使用IN参数的副本。\[1\]OUT参数表示从存储过程内部传值给调用者,即存储过程可以将计算结果通过OUT参数返回给调用程序。在定义OUT参数时,需要指定参数的类型和长度。\[2\]INOUT参数是IN参数和OUT参数的结合,它既可以作为输入参数传递给存储过程,也可以作为输出参数返回给调用程序。\[3\]这些不同类型的参数存储过程中的使用方式和传递值的方式上有所区别。 #### 引用[.reference_title] - *1* [MySQL 存储过程参数](https://blog.csdn.net/weixin_35125164/article/details/113949475)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *2* *3* [MySQL存储过程——输入参数(in)、输出参数(out)、输入输出参数(inout)](https://blog.csdn.net/weixin_47723732/article/details/123582459)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值