DateTime 賦初始值

2022-09-07 06:45:11 字數 917 閱讀 1782

今天在將資料庫裡的datetime型別資料賦給c#裡datetime型別變數的時候遇到乙個問題,那就是資料庫裡面的datetime資料存在null值。

c#預設不能將null賦給datetime變數,但是可以使用nullable型別的datetime,只需在宣告變數的時候在datetime後加乙個?號,如:

datetime? x ;

x便可以賦null值。

但是從資料庫的datetime型別變為c#的datetime型別需要convert.todatetime();如果資料庫裡面的datetime資料為null的話,這個方法是不能使用的。

於是我加了個if語句:

if((row["date1"])!=null)

但是這個if語句無效,改成

row["date1"].tostring()!=null

仍然無法判斷資料庫中的datetime型別的列date1是否為null。

後來更改為row["date1"].tostring()!=""終於可以判斷了。完整語句為:

datetime? x;

if(row["date1"].tostring()!="")

x=convert.todatetime(["date1"]);

else

x=null;

注意最後x只能賦null,而不能像原來資料庫資料一樣賦""。因為x被宣告為nullable型別變數的。

這樣,如果將x在存入資料庫的話,資料庫裡顯示為1900-1-1.

null和""在c#中的區別是前者沒有指向任何string物件,而後者為長度為0的string物件,且為其分配了記憶體空間。

但是剛剛試了一下,不論""或null存入資料庫的時候都是1900-1-1,如果想在資料庫裡也為null的話,可以選擇當x為null或""時,不存入資料庫中的相關列

討論 C Calendar賦初始值

q 我在page load的時候給calendar賦初始值,但是page顯示之後,calendar顯示是當天 比如今天顯示7月12號 我想讓它預設顯示出我給賦的時間 8 30 2006 我該怎麼去設定呢?a calendar1.selecteddate new datetime datetime.n...

DropdownList 賦初始值問題

網上查了這樣的 雖然是可以用。但是會點選多次會出現 dropdownlist不能選多個值的問題 private void initdroplistitemlirun string c business private void initdroplistitem string c business 最...

使用公式給引數賦預設初始值

目錄 一般引數預設值都是固定的,但有時也需要動態的顯示預設值,比如日期引數預設顯示當前日期,甚至是需要根據當前日期計算出當前月的第一天和最後一天。注 只有在定義引數預設值的時候公式有效,若在引數查詢介面輸入公式是無效的。在定義預設值的時候可以使用公式來實現動態計算出預設值。開始日期為當前月的第一天 ...