Asp.net
將參數中的 NULL 傳遞給儲存過程中的 DateTime 欄位
我有一個儲存過程,它使用我提供的參數更新數據庫,但我無法將 NULL 傳遞給儲存過程
我需要設為 NULL 的欄位是 DateTime 欄位
DB.Parameters.AddWithValue("@date", NULL)這給了我錯誤
未聲明“NULL”。不再支持“Null”常量;改用“System.DBNull”
所以我嘗試了
DB.Parameters.AddWithValue("@date", DBNull.Value.ToString())但這會在將 a 傳遞給欄位時產生
1900-01-01 00:00:00.000列中的值""我也試過
DB.Parameters.AddWithValue("@date", DBNull.Value)但它會產生這個錯誤
“System.DBNull”類型的值無法轉換為“String”。
有人有什麼想法嗎?
嘗試這樣的事情,使用
Add而不是AddWithValue:DB.Parameters.Add("@date", SqlDbType.DateTime).Value = DBNull.Value;
或者你可以像這樣添加你的參數,如果你的變數為空,它會在數據庫中給它一個空值:
DB.Parameters.AddWithValue("@date", myDateTime ?? (object)DBNull.Value);您需要將其設置為 Amit 提到的可為空的類型。
更多詳細資訊和背景,請訪問<http://evonet.com.au/overview-of-c-nullable-types/>