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: 值类型与列类型不匹配 相关错误: 解决方案: 1. 检查表结构的日期时间类型,默认值。 [不是null] 若是打勾的,必须把默认设置为“CURRENT_TIMESTAMP”。 [不是null] 不打勾的,必须把默认设置为空值,或者是NULL。 !!!! 绝对不允许'0000-00-00 00:00:00'值,否则.NET无法解析。 另外注意: 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 扫一扫加微信
参考文档:
Sql类型与.Net(C#)类型对应关系表(转) 将SQLServer数据类型转换为C#.Net类型 C#.Net显示今天的农历日期 C#.Net 上传图片,限制图片大小,检查类型完整版 C#.Net String类型Null与String.Empty有什么区别? C#.Net COM交操作性 - 强类型RCW和弱类型CCW详解 C#.Net值类型和引用类型区别 C#.NET DateTime时间格式转换为Unix时间戳格式(int类型) C#日期类型转换工具(时间戳,字符串,long,byte类型互转) C# ADO.NET根据实体对象类型转换创建DataTable对象 ASP.NET编译网站报错:未能加载类型.Global.asax,把CodeBehind改为CodeFile即可 C#.NET数据类型(Type)与DbType的对应关系 C#.NET 处理SQL特殊数据类型Geography/Geometry/Hierarchyid/XML C#.NET 查询MYSQL报错:值类型与列类型不匹配不能在列中存储<0001-01-01 00:00:00>。所需类型是MySqlDateTime 代码生成器生成ORM报错:不能在 colLength 列中存储 <18,2>。所需类型是 Int32。
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 | |