C#.NET给DataTable日期类型的列赋值报错:所需类型是 MySqlDateTime,值类型与列类型不匹配


  C#.NET给DataTable日期类型的列赋值报错:所需类型是 MySqlDateTime,值类型与列类型不匹配C#.NET给DataTable日期类型的列赋值报错:所需类型是 MySqlDateTime,值类型与列类型不匹配



C#.NET 给DataTable日期类型的Column赋值报错:


System.ArgumentException
  Message=值类型与列类型不匹配不能在 CreateTime 列中存储 <2021-06-11 18:02:50>。所需类型是 MySqlDateTime。
  Source=System.Data
内部异常 1:
ArgumentException: 值类型与列类型不匹配



贴图图片-连接mysql报错1



相关错误:



贴图图片-连接mysql报错(1)




解决方案:


1. 检查表结构的日期时间类型,默认值。

[不是null] 若是打勾的,必须把默认设置为“CURRENT_TIMESTAMP”。
[不是null] 不打勾的,必须把默认设置为空值,或者是NULL。


!!!!  绝对不允许'0000-00-00 00:00:00'值,否则.NET无法解析。



贴图图片-MySQL日期



另外注意:

1. 若是datetime类型的字段,不要勾选【根据时间戳更新】,否则,您修改任一字段的值,此字段的值会同步更新为当前时间。


2. TimeStamp类型的字段,必须勾选【根据时间戳更新】,默认值为:CURRENT_TIMESTAMP。




可以用下面的语句查询默认值为'0000-00-00 00:00:00'的表


SQL Code:

SELECT * FROM information_schema.`COLUMNS` where 1=1
and TABLE_SCHEMA in ('cs5_normal','cs5_system')
and column_default='0000-00-00 00:00:00'
and column_type in ('datetime')
order by table_name

//来源:C/S框架网 | www.csframework.com | QQ:23404761





2. MySQL的连接字符串加上以下属性:

Convert Zero Datetime=True;


删除此属性!!! --> Allow Zero Datetime=True;




C# Code:

//解决方案:
//连接字符串删除:Allow Zero Datetime=True; 加上:Convert Zero Datetime=True;
string conn = "Server={0};Port={1};Database={2};User ID={3};Password={4};Connection TimeOut={5};Charset=utf8;Pooling=true;Min Pool Size=0;Max Pool Size=500;Connection Lifetime=0;Convert Zero Datetime=True;";
conn
= string.Format(conn, "120.79.85.97", "3306", "cs5_system", "root", "lucky2021.", 30);
IDatabase db
= DatabaseFactory.CreateMySqlDatabase(conn);

var DT = db.GetTable("SELECT * FROM tb_MyUserRoles LIMIT 10;");
var row = DT.Rows.Add();
row[
"CreateTime"] = DateTime.Now;
DT.AcceptChanges();

MessageBox.Show(row[
"CreateTime"].ToString());


//来源:C/S框架网 | www.csframework.com | QQ:23404761






C/S框架网|原创精神.创造价值.打造精品

扫一扫加微信
C/S框架网作者微信 C/S框架网|原创作品.质量保障.竭诚为您服务




版权声明:本文为开发框架文库发布内容,转载请附上原文出处连接
C/S框架网
上一篇:CSFramework对象模型框架(DbDataUpdate),支持MsSQL,MySQL,Oracle三种数据库操作
下一篇:C/S开发框架的角色(Role)分类(普通角色、系统角色、数据角色、扩展角色)
评论列表

发表评论

评论内容
昵称:
关联文章

C#.NETDataTable日期类型赋值类型 MySqlDateTime类型类型匹配
C#.NET 查询MYSQL类型类型匹配不能在中存储<0001-01-01 00:00:00>。类型MySqlDateTime
代码生成器生成ORM:不能在 colLength 中存储 <18,2>。类型 Int32。
EditValueChanged事件,另外文本框赋值,为什么事件本身
VS2022 .NET7:为访问服务。Site能为null。
EF:从 datetime2 数据类型到 datetime 数据类型转换产生一个超出范围
升级程序DataTable.ReadXml:MySql.Data.Types.MySqlDateTime is not allowed here
DevExpress DateEdit组件日期,传入SQL参数解决方法
C# LINQ匹配单据日期、制单时间(日期时间范围匹配
SetPropertyValue 对象属性赋值
C#.Net类型和引用类型区别
通过.NET反射动态调用SetValue方法属性PropertyInfo赋值
C# DataGridView 自动新增记录当前单元格赋值
C# DataSet和DataTable
LookupEdit.EditValueChanged事件内其它文本框赋值无效或变回原来
C/S开发框架DAL层提交数据"外键为空!"解决方案。
FastReport.NET System.PlatformNotSupportedException:“Operation is not supported on this platform.”
ASP.NET编译网站:未能加载类型.Global.asax,把CodeBehind改为CodeFile即可
npm run dev 运行:'webpack-dev-server' 内部或外部命令,也可运行程序。
(C# 更新Web引用) 此计算机上没有安装枚举Web引用组件

热门标签
.NET5 .NET6 .NET7 APP Auth-软件授权注册系统 Axios B/S B/S开发框架 Bug Bug记录 C#加密解密 C#源码 C/S CHATGPT CMS系统 CodeGenerator CSFramework.DB CSFramework.EF CSFrameworkV1学习版 CSFrameworkV2标准版 CSFrameworkV3高级版 CSFrameworkV4企业版 CSFrameworkV5旗舰版 CSFrameworkV6.0 DAL数据访问层 Database datalock DbFramework Demo教学 Demo下载 DevExpress教程 DOM EF框架 Element-UI EntityFramework ERP ES6 Excel FastReport GIT HR IDatabase IIS JavaScript LINQ MES MiniFramework MIS NavBarControl Node.JS NPM OMS ORM PaaS POS Promise API Redis SAP SEO SQL SQLConnector TMS系统 Token令牌 VS2022 VSCode VUE WCF WebApi WebApi NETCore WebApi框架 WEB开发框架 Windows服务 Winform 开发框架 Winform 开发平台 WinFramework Workflow工作流 Workflow流程引擎 版本区别 报表 踩坑日记 操作手册 代码生成器 迭代开发记录 基础资料窗体 架构设计 角色权限 开发sce 开发技巧 开发教程 开发框架 开发平台 开发指南 客户案例 快速搭站系统 快速开发平台 秘钥 密钥 权限设计 软件报价 软件测试报告 软件简介 软件开发框架 软件开发平台 软件开发文档 软件体系架构 软件下载 软著证书 三层架构 设计模式 生成代码 实用小技巧 收钱音箱 数据锁 数据同步 微信小程序 未解决问题 文档下载 喜鹊ERP 喜鹊软件 系统对接 详细设计说明书 行政区域数据库 需求分析 疑难杂症 蝇量级框架 蝇量框架 用户管理 用户开发手册 用户控件 在线支付 纸箱ERP 智能语音收款机 自定义窗体 自定义组件 自动升级程序