[尝试从MySQL数据库中将某些数据标记为bool(tinyint)的数据时,我遇到问题。
我正在尝试将读取的值强制转换为c#中的bool,但它给出了异常“无法将SByte类型的对象强制转换为布尔类型”
我尝试在连接字符串中添加SELECT
,但没有任何改变。。
这是来自MySQl数据读取器的代码:
Treat Tiny As Boolean=true
是否有一种方法可以自动将tinyint转换为bool,还是应该手动将其转换?
我正在使用MySQL 8.1和Connector 8.1
由于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"]);
。