我有一个MySQL列指定为:
`type` TINYINT(1) NOT NULL DEFAULT '0'
Run Code Online (Sandbox Code Playgroud)
该列的目的是存储一个不超过127的整数值,因为预计不会超过极少数的对象"类型".
我在其中一行中存储了'2'.
使用SqlYog,简单SELECT type FROM table得到正确的结果,2.
但是,使用Connector/Net 6.1.2(不可否认它有点过时,因为当前版本是6.5.4),会发生以下情况:
var Temp = Reader["type"].GetType(); // equals "Boolean"
Run Code Online (Sandbox Code Playgroud)
这种类型的列是通常用于布尔值,但在这种情况下,我想要得到的整数值.以下未能产生预期结果:
int i = Reader.GetInt32("type"); // equals 1 (should be 2)
Run Code Online (Sandbox Code Playgroud)
在.NET应用程序中使用Connector/Net从TINYINT(1)列获取int值的正确方法是什么?
这是使用MySQL版本5.5.16
Connector的困惑的答案可能是MySQL文档中的这一部分;数字类型:
从 MySQL 5.0.3 开始,有一种
BIT数据类型可用于存储位字段值。(5.0.3之前,MySQL解释BIT为TINYINT(1)。)...
或者(更有可能)来自数字类型概述的这一部分:
BOOL, BOOLEAN这些类型是 的同义词
TINYINT(1)。零值被视为错误。非零值被视为 true ...
| 归档时间: |
|
| 查看次数: |
1843 次 |
| 最近记录: |