如何在C#中将tinyint作为布尔值?

问题描述 投票:0回答:1

[尝试从MySQL数据库中将某些数据标记为bool(tinyint)的数据时,我遇到问题。

我正在尝试将读取的值强制转换为c#中的bool,但它给出了异常“无法将SByte类型的对象强制转换为布尔类型”

我尝试在连接字符串中添加SELECT,但没有任何改变。。

这是来自MySQl数据读取器的代码:

Treat Tiny As Boolean=true

是否有一种方法可以自动将tinyint转换为bool,还是应该手动将其转换?

我正在使用MySQL 8.1和Connector 8.1

c# mysql mysql-connector
1个回答
0
投票

由于MySQL确实将布尔值存储为TINYINT(1),因此您将需要执行以下操作来进行转换:

Profilo profilo = new Profilo();
Moduli moduli = new Moduli();

        while (reader.Read())
        {
            profilo.id = (int)reader["ID"];
            moduli = new Moduli((int)reader["ID_MOD"], (bool)reader["ASPORTO_MOD"], (bool)reader["TAKEAWAY_MOD"], (bool)reader["ECOM_MOD"], (bool)reader["MENU_MOD"]
                , (bool)reader["PRENOTAZIONE_MOD"], (bool)reader["INGREDIENTI_MOD"], (bool)reader["TICKETING_MOD"], (int)reader["ORDINE_MENU_MOD"]);
            profilo.moduli = moduli;
            return profilo;
        }

而不是Convert.ToBoolean(reader["ASPORTO_MOD"]);

© www.soinside.com 2019 - 2024. All rights reserved.