mysql tinyint 对应c#类型_如何在C#中从MySQL中检索tinyint的数据类型?

问题是由于强制转换和显式运算符:

(byte)objectExpression与(byte)sbyteExpression不同.

第一个是[direct]强制转换失败,因为真实对象类型是sbyte而不是byte.后者将执行转换,恰好使用带有语法的显式运算符(“显式转换”),遗憾的是,仍然看起来像上面的[direct]强制转换.这是一个失败sans-database的例子:

var obj = (object)(sbyte)0;

var i1 = (int)(sbyte)obj; // okay: object (cast)-> sbyte (conversion)-> int

var i2 = (int)obj; // fail: sbyte (cast)-> int (but sbyte is not int!)

要么使用对实际对象类型有效的(sbyte)objectExpression强制转换,要么使用Convert.ToInt32(objectExpression),它接受一个对象并做一些魔法将其转换为int. (使用Convert.ToByte可能会在溢出时抛出异常.)

快乐的编码!