c# - 当 DateTime 参数为空时,C# INSERT to SQL 方法异常
问题描述
我的参数之一如下所示:
cmd.Parameters.Add("@last_sign_in_at", SqlDbType.DateTime).Value = user.last_sign_in_at;
我知道 User 在last_sign_in_at
. 数据库接受此列的空值,但出现异常:
SqlException:参数化查询 '(@id int,@name nvarchar(18),@username nvarchar(11),@state nvarch' 需要未提供的参数 '@last_sign_in_at'。
解决方案
您应该使用 DBNull.Value:
cmd.Parameters.Add("@last_sign_in_at", SqlDbType.DateTime).Value = (object)user.last_sign_in_at ?? (object)DBNull.Value;
在这里转换为对象只是为了让操作员??
不要抱怨不同的类型
推荐阅读
- html - 元内容设备宽度影响图像它使列内的图像不清晰
- amazon-dynamodb - DynamoDB 交叉选择与分页
- javascript - SAPUI5 DatePicker 在 sap.ui.table 上动态 InitialFocusedDateValue
- c++ - 为什么我的 PZEM-004T 模块无法测量?
- c++ - Arduino 使用 Visual Studio 在另一个库中包含一个库
- wordpress - 不要通过电子邮件+联系表格发送空白字段 7
- swift - 如何在 NSScrollview 上禁用用户交互?
- validation - 在 shopware 6 中验证后端密码
- typescript - TypeScript - 删除具有特定类型的所有属性
- vue.js - 如何设置所有
仅在移动设备上彼此下方?