首页 > 解决方案 > 当 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'。

标签: c#sql

解决方案


您应该使用 DBNull.Value:

cmd.Parameters.Add("@last_sign_in_at", SqlDbType.DateTime).Value = (object)user.last_sign_in_at ?? (object)DBNull.Value;

在这里转换为对象只是为了让操作员??不要抱怨不同的类型


推荐阅读