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