C# - MySQL防止TINYINT(1)转换为布尔转换

时间:2016-11-13 19:15:59

标签: c# mysql

有没有办法阻止从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;
}

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

提前致谢。

2 个答案:

答案 0 :(得分: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 Data Type Mappings

答案 1 :(得分:0)

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

(byte)rdr["columnwithtinyintdatatype"];
相关问题