gpt4 book ai didi

c# - 如何在 C# 中从 MySQL 检索 tinyint 数据类型?

转载 作者:可可西里 更新时间:2023-11-01 06:31:43 25 4
gpt4 key购买 nike

所以在 C# 中,每当我从我的 MSSQL 数据库中检索一个 tinyint 时,我都会使用以下转换。

(int)(byte)reader["MyField"];

但是,该转换在 MySQL 中似乎不起作用。

我尝试过的

(byte)reader["MyField"];

只是

(int)reader["MyField"];

编辑 1

异常

The specified cast is not valid.

编辑2

这是数据类型。

{Name = "SByte" FullName = "System.SByte"}

最佳答案

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

(byte)objectExpression(byte)sbyteExpression 不同。

第一个是 [direct] cast,它失败了,因为真实的对象类型是 sbyte 而不是 byte。后者将执行一个转换,它恰好使用了一个显式运算符(一个“显式转换”),不幸的是,它的语法仍然看起来像一个[直接] 按照上面的方法施放。这是一个失败的 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 可能会在溢出时引发异常。)

编码愉快!

关于c# - 如何在 C# 中从 MySQL 检索 tinyint 数据类型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10922928/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com