解决办法:Call stored procedure using ExecuteSqlCommand (expects parameters which was not supplied)
问题描述
在做.NET Core demo的时候使用 ExecuteSqlCommand
调用执行是出现如下错误
Microsoft.Data.SqlClient.SqlException (0x80131904): The parameterized query ‘(xxx’ expects the parameter ‘@xxx’, which was not supplied.
原因分析
之前在使用EF的时候完全没有问题,后改用调用sp后出现问题,又排查了sql语句以及参数都没有发现错误,后来在Postman发现测试数据这个值是null值,后赋值给这个字段再次跑postman发现可以跑过。分析是因为直接赋值null给sp的过程中出错,但是该字段并不是必填项,可以有空的时候,后调查使用 DBNull.Value
来解决
解决办法
在SqlParameter赋值的时候使用 DBNull.Value
来做一次判断:
SqlParameter paraXxxx = new SqlParameter("@Xxxx", regRequest.Xxxx ?? DBNull.Value);
按照上述代码修改后发现有编译错误:
CS0019 Operator ‘??’ cannot be applied to operands of type ‘string’ and ‘DBNull’
问题原因:
字符串和 DBNull
之间不能自动进行转换
解决办法
可以有如下的代码进行转换:
SqlParameter paraXxxx = new SqlParameter("@Xxxx", (object)regRequest.Xxxx ?? DBNull.Value);
或
SqlParameter paraXxxx = new SqlParameter("@Xxxx", regRequest.Xxxx ?? Convert.DBNull);
或者
SqlParameter paraXxxx = new SqlParameter("@Xxxx", regRequest.Xxxx ?? (object)DBNull.Value);
至此问题已解决
解决办法:Call stored procedure using ExecuteSqlCommand (expects parameters which was not supplied)相关推荐
- Could not apply the stored configuration for monitors 解决办法
Could not apply the stored configuration for monitors 解决办法: $ sudo rm -rf ~/.config/monitors.xml 重启电 ...
- java sharepoint 2010,安装SharePoint2010出现“Could not find stored procedure ‘sp_dboption’.”的解决方法...
要使用sharepoint开发一个项目,下载sharepoint server 2010并安装,我的开发环境是win 7(x64),因此需要进行特定的设置才可以安装,可以参考 参考上述文章进行安装都很 ...
- MAC执行sed命令报“command c expects \ followed by text”错误解决办法
我在mac上执行sed命令nl numbers.txt| sed '2a bb'报错 sed: 1: "2a bb": command a expects \ followed b ...
- DNN安装报错-The stored procedure 'dbo.GetPortalAliasByPortalID' doesn't exist.如何解决
因为出错代码比较长,就放在后面了. 出现"The stored procedure 'dbo.GetPortalAliasByPortalID' doesn't exist."报错 ...
- VisualStudio:[The security key for this program currently stored on your system does not appear]解决办法
一.问题 今天打开VisualStudio的时候,弹出了如下的窗口 原因应该是VA小助手的问题,解决办法就是清除VA小助手的注册表信息. 二.解决办法 按下面的步骤执行 1 .regedit删除WHO ...
- lr各种问题以及解决办法
下面是一个使用的例子: lr_convert_string_encoding(lr_eval_string("{ReplyContents}"),LR_ENC_SYSTEM_LOC ...
- mysql关键字冲突解决办法_mysql 关键字 及关键字冲突解决办法
关键字 https://www.cnblogs.com/Z-Fanghan/p/6892944.html 现在使用navicat图形界面或者Hibernate做映射生成表的时候,渐渐的会忽视掉关键字这 ...
- Windows下关于Composer使用时出现的问题及解决办法
问题一: Fatal error: Call to undefined method Composer\Package\CompletePackage::getTransportOptions() i ...
- win7组件服务COM+应用程序编录错误解决办法
一般情况下,我们遇到过的COM+应用程序编录错误共有两个:(1)第一个是打开COM+应用程序时出现"编录错误,执行最后操作发生错误,错误代码8007042C-依赖服务或组无法启动,事件或日志 ...
最新文章
- Delphi 的编译指令(1): $DEFINE、$UNDEF、$IFDEF、$ELSE、$ENDI
- Windows 11,一个新功能,一场新屠杀!
- [验证码识别技术]-初级的滑动式验证图片识别
- boost::hana::chain用法的测试程序
- 推荐:适合小白入门的Asp.Net Core 开源学习手册
- 玩转linux 中间的yum 命令
- es6 数组找最大值_JavaScript(es6)数组常用的方法
- key位置 win10生成的ssh_Win10系统中生成SSH密钥的方法
- 偶像生于1964:马云、张朝阳、求伯君的激荡人生
- 智能门锁电路图_智能门锁原理图,智能锁工作原理科普
- 846计算机类,x846-《计算机类学科基础》考试内容及范围(8页)-原创力文档
- 路由器局域网设置_教你如何修改路由器LAN口IP地址的方法
- 深耕游戏后服务 虚贝战略再升级
- 用友财务软件函数说明
- [引擎搭建记录] 时间性抗锯齿(TAA)
- vim tutorial 101 hacks(三)
- 什么百度霸屏?百度霸屏是什么意思?
- Matplotlib contours 等高线图
- Java小白入门200例39之Java字符串拼接(连接)
- 我们整天忙忙碌碌,像一群群没有灵魂的苍蝇