c# - MySQL防止TINYINT(1)到布尔值转换

本文关键字:布尔值 转换 MySQL 防止 TINYINT | 更新日期: 2023-09-27 18:17:38

是否有办法防止从TINYINT(1)转换为布尔值?或者将其转换为int ?

我的TINYINT(1)列可以有0,1,2,3这样的数据。但是它被分别转换为False, True, True, True

下面是我当前使用的代码:

using (Cmd = new MySqlCommand())
{
    Cmd.Connection = Conn;
    SetQuery();
    using (var dt = new DataTable())
    {
        dt.Load(Cmd.ExecuteReader());
        ObjectList = dt.AsEnumerable().ToArray();=
    }
    Parse();
    return ObjectList != null;
}

希望你能帮我解决这个问题。

c# - MySQL防止TINYINT(1)到布尔值转换

TINYINT基本上是SQL Server中的1 byte,它的。net等价物是byte。您可以通过多种方式实现此操作,请查看

int x = (int)(byte) reader["column"];
int x = (byte) reader["column"];
int x = reader.GetByte(column);

参考SQL Server数据类型映射

虽然您发布的代码无处显示从TINYINT(1)boolean的实际转换,但您可以尝试将其转换为byte,如

(byte)rdr["columnwithtinyintdatatype"];