原理就是把變量 設置為允許為null的datetime類型。
1.聲明變量的時候
///
/// 設置其為允許為空
///
private Nullable reachDate;
public Nullable ReachDate
{
get { return reachDate; }
set {
reachDate = value; }
}
2.在使用的時候,如果不給字段賦值,默認的就是null,它的hasValue就應該為flase的。
注意:請不要設置其=null 否則會出現“可為空的對象必須具有一個值。”錯誤if
//判斷用戶是否輸入了日期,如果輸入則賦值
(txtReachDate.Text.ToString().Trim()!=””)
{
ReachDate = Convert.ToDateTime(txtReachDate.Text.ToString().Trim());
}
3.寫入數據庫的時候,給參數賦值。
SqlParameter[] parmas = new SqlParameter[]
{
new SqlParameter(“@Id”, SqlDbType.VarChar, 20),
new SqlParameter(“@ReachDate”,SqlDbType.DateTime)
};
parmas[0].Value = c.Id;
//判斷如果為空值
if (c.ReachDate == null)
{
parmas[1].Value = DBNull.Value;//在數據庫中就是 NULL
}
else
{
parmas[1].Value = Convert.ToDateTime(ReachDate);
}
3.使用SqlDataReader 讀取數據時
SqlDataReader reader = SqlHelper.ExecuteReader(SqlHelper.PaperConnectionString, CommandType.StoredProcedure, “CarGetList”, null);
reader.Read();
if (reader.HasRows)
{
//數據讀取的時候,要判斷其是否為 NULL,在賦值到 ReachDate屬性中
if (reader[“ReachDate”] is DBNull)
{
}
if(reader[“ReachDate”] == DBNull.Value)
{ }
else
{
carteam.ReachDate = Convert.ToDateTime(reader[“ReachDate”]);
}
}
else
{
}
reader.Close();