我們知道這個SQL server數據庫中的DateTime類型是數據庫應用開發中經常用到的一種數據類型,而C#語言中也有DateTime類型,雖然二者都是用來描述時間的,但是它們的默認值是不同的,這點必須注意,在開發過程中,二者之間相互適應關系處理不當,可能會產生不必要的麻煩,就等於浪費時間,所以記住。舉個例子看看:
創建一個windows應用程序,創建一個用戶信息實體類UserInfo.代碼如下:
注意的是:用戶信息類中的“操作日期”屬性是日期類型。
再創建一個業務操作類,UserInfoOperate,代碼如下:
最后創建窗體,代碼如下:
上述代碼中,並沒有給用戶信息實體中的“OperateDate”賦值。而是使用了C#的DateTime類型的默認值。
當我在點擊添加按鈕時,
出現了異常:從char數據類型到datetime數據類型的轉換導致datetime值越界。
(ctrl+D,Q)快速監視,發現OperateDate的值是:0001-1-1 0:00:00.
在SQL server數據庫中,DateTime類型的值必須在:1753年1月1日~9999年12月31日。而上述代碼中的operateDate的值0001很明顯的小於1753年。所以出現了錯誤。
找到問題之后,我給其屬性賦了合理的值。