c# - 无法从 c# dapper 代码将日期时间作为空值插入 Nexus 数据库
问题描述
使用 dapper 类到 nexus 数据库将 DateTime 值作为 null 插入 Nexus Db 时遇到以下问题。
public const string SqlQuery = @"INSERT INTO Test(test1, test2, test3,
Date1,Date2))
Values(?test1?,?
test2?,?date1?,?date2?)";
public void InsertTest(string test1,string test2, DateTime? date1,DateTime?
date2)
{
var params= new DynamicParameters(
new
{
test1= "",
test2 ="",
Date1 = cDate.HasValue ? cDate.Value.Date : (DateTime?)null,
Date2 = cDate1.HasValue ? cDate2.Value.Date : (DateTime?)null,
}
ExecConn(SqlQuery , params);
}
ERROR [HY000] 查询返回错误(ODBC 状态:HY000)
错误:日期编码的参数无效
查询:t 60000;插入测试(test1,test2,test3,Date1,Date2)值(:Param1,:Param2,:Param3,:Param4,:Param5)
解决方案
尝试使用 DateTime.MinValue 而不是 (DateTime?)null
public void InsertTest(string test1,string test2, DateTime? date1,DateTime?
date2)
{
var params= new DynamicParameters(
new
{enter code here
test1= "",
test2 ="",`enter code here`
Date1 = cDate.HasValue ? cDate.Value.Date : DateTime.MinValue.Date,
Date2 = cDate1.HasValue ? cDate2.Value.Date : DateTime.MinValue.Date,
}
ExecConn(SqlQuery , params);
}
推荐阅读
- c# - 从插件 NopCommerce 4.3 覆盖视图
- c++ - 如何将 boost::log::expressions::smessage 传递给 nlohmann::json 构造函数?
- java - @ConfigurationProperties 和 @Validated 不会在集成测试中绑定配置值
- flutter - 颤振 CupertinoPicker FixedExtentScrollController 更改 initialItem
- javascript - 保存过滤器,没有数据 WebDataRocks
- javascript - 为什么 Django 不能正确加载我的 javascript 文件?
- python - 尝试 POST 到 Flask 应用程序时出现 HTTP 405 错误
- asp.net-core - 如何在 Identity Server 4 中验证 AAD 用户?
- php - Symfony 注释配置中的正则表达式
- vue.js - Vue + webpack,将字体文件转换为base64