从Sql读取Nullable枚举到SqlDataReader类

时间:2014-07-20 16:08:08

标签: c# enums nullable sqldatareader

假设我的枚举定义如下:

  public enum ServiceType : int
    {
        None= 0,
        TBB= 1,
        Doctor= 2,
        Organization = 3
    }

现在,我在课堂上使用它:

 public Utility.ServiceType ? ServiceType  { get; set; }

现在,我如何在SqlDataReader类中读取存储在SQL中的值? 我试过

ServiceType = reader["ServiceType "] as Utility.ServiceType ?

但是将null作为值。

1 个答案:

答案 0 :(得分:1)

我应该早点看到这个。我很抱歉。我敢打赌,这是一个拆箱问题。您可能必须这样做:

var field = reader["ServiceType"];
if (field == DBNull.Value)
    ServiceType = null;
else
    ServiceType = (Utility.ServiceType)(int)field;