【问题标题】:C# - MySQL Prevent TINYINT(1) to Boolean ConversionC# - MySQL 防止 TINYINT(1) 到布尔转换
【发布时间】:2017-03-27 10:40:34
【问题描述】:

有什么方法可以防止从 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


【解决方案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

【讨论】:

  • 这个问题询问的是 MySQL,而不是 SQL Server。
  • 我知道,但两者的基本概念是相同的
【解决方案2】:

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

(byte)rdr["columnwithtinyintdatatype"];

【讨论】:

    猜你喜欢
    • 2022-08-05
    • 1970-01-01
    • 2020-12-10
    • 2011-11-25
    • 2012-07-06
    • 2011-04-14
    • 2018-12-13
    • 1970-01-01
    • 2013-08-09
    相关资源
    最近更新 更多