asp.net 解決 datetime 不能為Null的問題


原理就是把變量 設置為允許為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();


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM