问题描述

在做.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)相关推荐

  1. Could not apply the stored configuration for monitors 解决办法

    Could not apply the stored configuration for monitors 解决办法: $ sudo rm -rf ~/.config/monitors.xml 重启电 ...

  2. java sharepoint 2010,安装SharePoint2010出现“Could not find stored procedure ‘sp_dboption’.”的解决方法...

    要使用sharepoint开发一个项目,下载sharepoint server 2010并安装,我的开发环境是win 7(x64),因此需要进行特定的设置才可以安装,可以参考 参考上述文章进行安装都很 ...

  3. 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 ...

  4. DNN安装报错-The stored procedure 'dbo.GetPortalAliasByPortalID' doesn't exist.如何解决

    因为出错代码比较长,就放在后面了. 出现"The stored procedure 'dbo.GetPortalAliasByPortalID' doesn't exist."报错 ...

  5. VisualStudio:[The security key for this program currently stored on your system does not appear]解决办法

    一.问题 今天打开VisualStudio的时候,弹出了如下的窗口 原因应该是VA小助手的问题,解决办法就是清除VA小助手的注册表信息. 二.解决办法 按下面的步骤执行 1 .regedit删除WHO ...

  6. lr各种问题以及解决办法

    下面是一个使用的例子: lr_convert_string_encoding(lr_eval_string("{ReplyContents}"),LR_ENC_SYSTEM_LOC ...

  7. mysql关键字冲突解决办法_mysql 关键字 及关键字冲突解决办法

    关键字 https://www.cnblogs.com/Z-Fanghan/p/6892944.html 现在使用navicat图形界面或者Hibernate做映射生成表的时候,渐渐的会忽视掉关键字这 ...

  8. Windows下关于Composer使用时出现的问题及解决办法

    问题一: Fatal error: Call to undefined method Composer\Package\CompletePackage::getTransportOptions() i ...

  9. win7组件服务COM+应用程序编录错误解决办法

    一般情况下,我们遇到过的COM+应用程序编录错误共有两个:(1)第一个是打开COM+应用程序时出现"编录错误,执行最后操作发生错误,错误代码8007042C-依赖服务或组无法启动,事件或日志 ...

最新文章

  1. Delphi 的编译指令(1): $DEFINE、$UNDEF、$IFDEF、$ELSE、$ENDI
  2. Windows 11,一个新功能,一场新屠杀!
  3. [验证码识别技术]-初级的滑动式验证图片识别
  4. boost::hana::chain用法的测试程序
  5. 推荐:适合小白入门的Asp.Net Core 开源学习手册
  6. 玩转linux 中间的yum 命令
  7. es6 数组找最大值_JavaScript(es6)数组常用的方法
  8. key位置 win10生成的ssh_Win10系统中生成SSH密钥的方法
  9. 偶像生于1964:马云、张朝阳、求伯君的激荡人生
  10. 智能门锁电路图_智能门锁原理图,智能锁工作原理科普
  11. 846计算机类,x846-《计算机类学科基础》考试内容及范围(8页)-原创力文档
  12. 路由器局域网设置_教你如何修改路由器LAN口IP地址的方法
  13. 深耕游戏后服务 虚贝战略再升级
  14. 用友财务软件函数说明
  15. [引擎搭建记录] 时间性抗锯齿(TAA)
  16. vim tutorial 101 hacks(三)
  17. 什么百度霸屏?百度霸屏是什么意思?
  18. Matplotlib contours 等高线图
  19. Java小白入门200例39之Java字符串拼接(连接)
  20. 我们整天忙忙碌碌,像一群群没有灵魂的苍蝇

热门文章

  1. drv8833 马达控制
  2. 蓝奏云网盘在线上传源码
  3. LIBSVM在Matlab下的使用和LIBSVM的matlab软件下README全文翻译
  4. Qt on Android 核心编程
  5. mvc3和dz nt v3.6完美跨域登陆整合解析
  6. 期货分仓软件 /股票分仓软件的功能有哪些?
  7. python-docx安装_python-docx的安装和使用
  8. 项目4.1穷举法-百元买百鸡
  9. 时间序列分析 | Python实现时间序列统计分析与建模
  10. 落地,请开手机李小晚【转】