参数化查询 但未提供该参数(将null插入数据库)
来源:互联网 发布:盗梦空间limbo 知乎 编辑:程序博客网 时间:2024/05/14 18:58
当你是使用参数化查询时为参数赋值时,比如command.Parameters.Add("@a",SqlDbType.Text,30).Value=a;当a=null是将报错:
错参数化查询 '(@a varchar(100)....' 需要参数 '@a',但未提供该参数
只是因为你给a的值为null,而数据库中的null(空)是System.DBNull 类型的不是同一类。所以在插入空的时候要用DBNull,而不是null,
所以可以这样改:
command.Parameters.Add("@a",SqlDbType.Text,30).Value=a ?? DBNull.Value;
?? :?? 运算符称作 null 合并运算符。如果此运算符的左操作数不为 null,则此运算符将返回左操作数;否则返回右操作数。
但是还是会报下面的错误。
解决方法:
很简单只要在后面加上 ToString()就好了;
如下
command.Parameters.Add("@a",SqlDbType.Text,30).Value=a ?? DBNull.Value.ToString();
0 0
- 参数化查询 但未提供该参数(将null插入数据库)
- Text数据类型,参数化查询但未提供该参数(将null插入数据库)
- 参数化查询 需要参数 但未提供该参数。
- .NET中插入数据库报错(400' 需要参数'@XXXX'但未提供该参数
- 需要参数 '@',但未提供该参数
- 参数化查询‘(@UserName nvarchar(10),@NickName nvarchra(50)’ 需要参数 @NickName,但未提供该参数
- 参数化查询,·需要参数@变量名,但未提供的解决办法。
- 牛腩新闻发布系统 (3) 存过过程或函数""需要""参数,但未提供该参数
- C#: 过程或函数""需要""参数,但未提供该参数
- C#: 调用存储过程或函数显示"需要"参数,但未提供该参数的解决方法
- 过程或函数'PROC_SettleAccounts'需要参数'@manager',但未提供该参数
- C#: 过程或函数""需要""参数,但未提供该参数
- 参数化查询'(@StudentNo nvarchar(3),@CardID nvarchar(1),@UserID nvarchar(400'需要参数@UserID'),但是未提供该参数。)
- 求救 !!System.Data.SqlClient.SqlException: 过程或函数 'Pr_AddUser' 需要参数 '@Specialty',但未提供该参数。
- 参数化查询 '(@UserName nvarchar(1),@PassWord nvarchar(4000))Select * from Us未提供“@PassWord”参数
- java操作Access数据库(带参数插入及查询)
- [C#] 数据库 参数化 查询
- 数据库异常 形参 @strCompellation 未声明为 OUTPUT 参数 但传递进来的实参请求输出
- VC++6.0
- cocos2dx 按钮随按下切换图标
- 俄罗斯方块
- WORD VBA 操作WORD 文本框
- Unity客户端框架笔记(状态模式和策略模式在游戏中的应用)
- 参数化查询 但未提供该参数(将null插入数据库)
- codeforces 66 D. Petya and His Friends(数论)
- nyoj 117 求逆序数【线段树 树状数组 归并排序】
- java实现自动编号系统(类似于word中自动编号)
- Linux cp命令
- functor 是什么?
- LintCode-乱序字符串
- css与div的一些属性使用
- 6.12