2013-02-21 48 views
0

我正在使用通過sqldatasource連接到我的數據庫的gridview控件。我可以直接從這個GridView中進行更新和刪除。數據庫結果中datetime的Gridview空值對象不能從DBNULL轉換爲其他類型錯誤

當我編輯一個日期字段並刪除內容,而不是寫入null到數據庫,它將數據庫中的值更改爲1900-01-01,如果我手動向數據庫寫入null,並使用編輯按鈕gridview在其他單元格的行上,下面是錯誤。

對象不能從DBNull轉換爲其他類型。

回答

0

首先檢查數據庫列是否爲空?

你還沒有提到你正在使用的是哪個版本的asp.net框架。

對於.net框架> = 3.5,您可以使用可空數據類型,即綁定應該與日期時間?字段而不是日期時間。您提到的錯誤是由於您試圖將空值綁定到類型datetime的變量。使用dateime?和您的錯誤「對象不能從DBNull轉換爲其他類型」將得到解決。或者你可以做的ItemDataBound事件如下:

yourTextBox.value = string.empty 
if(((DataRow)e.Item.DataItem)["YourDateField"] != dbnull.value) 
{ 
    yourTextBox.value = ((DataRowView)e.Item.DataItem)["YourDateField"] .toString(); 
} 

你在做什麼數據綁定/ datasaving您沒有提及。在數據保存代碼中執行以下操作:

datetime? saveDate = null; 
if(!string.isnullorempty(yourTextBox.value)) 
    { 
    saveDate = converto.datetime( yourTextBox.value); 


    } 

//Use the saveDate for the saving. 
相關問題