Kas*_*man 6 mysql asp.net boolean tinyint
这就是问题所在。在 MySQL 的 Connector/NET 中,TINYINT(1)字段正确地来回转换为 .NET bool 值。如果我从带有一TINYINT(1)列的表中进行选择,则一切都是金色的。但是,当您使用内置 MySQL v5.0 函数时,例如:
SELECT (3 BETWEEN 2 AND 4) AS oddly_not_boolean;
Run Code Online (Sandbox Code Playgroud)
数据库的实际返回类型将此字段注册为INTor BIGINT,Connector/.NET 显然不会将其转换为 bool。MySQLCAST()并且CONVERT()不允许强制转换为TINYINT(1).
我什至尝试使用用户功能来做到这一点, 但这也不起作用(编辑:这确实有效):
CREATE FUNCTION `to_bool`(var_num BIGINT)
RETURNS TINYINT(1) RETURN var_num;
Run Code Online (Sandbox Code Playgroud)
如何在 MySQL 中的查询中将an 转换INT为 a TINYINT(1)?
编辑:上面的函数确实可以将值转换为 a TINYINT(1),但我的连接器/NET 只是被窃听,无法正确转换函数中的值。
2009 年 11 月 3 日更新:更新了我的连接器,它仍然返回 Int32。进一步测试表明,这是MySQL 5.0.x 中的InnoDB 错误,仅在特定情况下才会显示。