果糖网

MYSQL 中类型为bit时生成的数据类型不正确,UInt64 返回

SqlSugar
1 19
INSERT INTO `mpm_concreteproduceerrordata`  (`Id`,`ConcreteId`,`H1`,`H2`,`H3`,`H4`,`H5`,`H6`,`H7`,`H8`,`H9`,`H10`,`H11`,`H12`,`H13`,`H14`,`H15`,`H16`,`H17`,`H18`,`H19`,`H20`,`H21`,`H22`,`H23`,`H24`,`H25`,`H26`,`H27`,`H28`,`H29`,`H30`,`H31`,`H1_IsAbnormal`,`H2_IsAbnormal`,`H3_IsAbnormal`,`H4_IsAbnormal`,`H5_IsAbnormal`,`H6_IsAbnormal`,`H7_IsAbnormal`,`H8_IsAbnormal`,`H9_IsAbnormal`,`H10_IsAbnormal`,`H11_IsAbnormal`,`H12_IsAbnormal`,`H13_IsAbnormal`,`H14_IsAbnormal`,`H15_IsAbnormal`,`H16_IsAbnormal`,`H17_IsAbnormal`,`H18_IsAbnormal`,`H19_IsAbnormal`,`H20_IsAbnormal`,`H21_IsAbnormal`,`H22_IsAbnormal`,`H23_IsAbnormal`,`H24_IsAbnormal`,`H25_IsAbnormal`,`H26_IsAbnormal`,`H27_IsAbnormal`,`H28_IsAbnormal`,`H29_IsAbnormal`,`H30_IsAbnormal`,`H31_IsAbnormal`) VALUES('1402931469034328067','1402931460691857408','0.996',NULL,NULL,NULL,NULL,NULL,'0','-0.445','0.719','-7.921',NULL,NULL,NULL,'-0.028','0','0.306','0',NULL,NULL,NULL,NULL,'0','0',NULL,NULL,NULL,NULL,NULL,NULL,NULL,NULL,'1','0','0','0','0','0','0','0','1','0','0
','0','0','0','0','1','0','0','0','0','0','0','0','0','0','0','0','0','0','0','0'),

以上是生成出来的SQL语句。其中的H10_IsAbnormal在MYSQL中为bit类型。

执行时出现:Data too long for column 'H1_IsAbnormal' at row 1


以下为代码

var concreteProduceErrorTable = db.Utilities.DataTableToDictionaryList(this.concreteProduceErrorTable);//5.0.23版本支持
tasks.Add(db.Insertable(concreteProduceErrorTable).AS("mpm_concreteproduceerrordata").ExecuteCommandAsync());


而我的TABLE来源于

db.Queryable<PO.Business.ConcreteProduceErrorData>().Where(m => false).ToDataTable();


他得到的H1_IsAbnormal类型为UInt64。这里是明显不合理的。。


我在生成出来之后,对类型进行转换。结果可以插入

concreteProduceErrorTable.Columns["H1_IsAbnormal"].DataType = typeof(bool);





热忱回答1

  • 这个应该和驱动版本有关系吧,todatetable取的类型来自于驱动

    0 回复

学习文档