在.net 2.0中,提供了 Nullable的范型,通过它,我们可以为基础类型如int等赋予null的值,这样我们就可以处理null值了。

例子代码

 数据表有个字段updateTimestamp,可以为null值。在实体类中使用如下设置:

private DateTime? _updateTimestamp;

/// <summary>
/// 文件更新日期
/// </summary>
public Nullable<DateTime> UpdateTimestamp
{
get { return this._updateTimestamp; }
set { this._updateTimestamp = value; }
}

/// <summary>
/// 从DataReader中加载数据
/// </summary>
/// <param name="rdr"></param>
public void Load(IDataReader
{
if
{
IsLoaded = true;
this.FileId = (int)rdr["fileId"];
if (!rdr["updatetimestamp"].Equals(DBNull.Value))
{
this.UpdateTimestamp = (DateTime)rdr["updatetimestamp"];
}
……
}
}
}

//保存文件方法
publicabstract int CreateFile(……,,DateTime? updatetimestamp, int

 

获取Nullable字段的值

        this.calDatePublished.SelectedDate = this.file. UpdateTimestamp.Value;

        不能直接使用this.calDatePublished.SelectedDate = this.file. UpdateTimestamp;

 

参考:http://blogs.msdn.com/ericgu/archive/2004/05/27/143221.aspx