DateTimePicker的疑問?? |
尚未結案
|
miga
初階會員 ![]() ![]() 發表:61 回覆:92 積分:30 註冊:2002-08-27 發送簡訊給我 |
|
deity
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
引言: 請問一下: 假設我有一個DateTimePicker, 在存入資料庫時是允許未輸人, 我在formactive時有給他datetimepicker.Format:=' '讓他為空白 但我在存檔時,若沒輸入資料,卻會自動存入今天的日期, 請問有辦法讓他在未輸入資料時可以不會自動存今天日期嗎? miga您好:不知道有无理解错您的意思: 是不是说当datetimepicker为空时,则将保存一个空值至资料库中,您可以参考下面: procedure TForm1.Button1Click(Sender: TObject); begin with query1 do begin close; sql.Clear; sql.Add('select * from yourtablename'); open; append; if datetimepicker1.Format=' ' then fieldbyname('dat').Value:=null else fieldbyname('dat').AsDateTime:=datetimepicker1.Datetime; post; open; end; end; 另外,當我在資料庫裡沒資料時,他卻會自已顯示值為1899/12/30 实测时没发现有这个错误,可否PO多代码看看 該怎麼避免掉呢?——行径窄处,留一步与人行—— ——Never give up, never surrender—— |
mine
中階會員 ![]() ![]() ![]() 發表:28 回覆:129 積分:56 註冊:2004-03-31 發送簡訊給我 |
剛試了一下DataTimepicker.Format D5沒這用法D7才有嗎??
DataTimepicker好像不能設為空值nil,null都不行
DataTimepicker會預設今天日期為目前資料如果你設
DataTimepicker1.DataTime:=0;
就會出現1899/12/30 所以我想的解決之道是在存之前指定給另一個字串
例如
temp:sring;
begin
temp:=DataTimeToStr(DataTimePicker1.DataTime);
設一旗標在DataTimePicker的onclick上 如果使用者有去觸發則flag:=True;
if flag=false then
temp:='';存的時侯請留心你的資料庫型態為字串而不是日期否則沒去幫你試
日期並不接受'00/00/00'這樣的型態存在
或者採用Deity大大的建議存fieldbyname('dat').VALUE:=NULL;
再加一判斷
if temp<>'' then
fieldbyname('dat').AsDateTime:=StrToDateTime(temp);直接存日期
不然就不要存了如果你是只要存dtae 請把time去掉
希望對你有幫助
--------------------------------------
搞不懂!搞不懂!永遠都搞不懂!! 發表人 - mine 於 2004/06/18 22:38:27
|
change.jian
版主 ![]() ![]() ![]() ![]() ![]() 發表:29 回覆:620 積分:439 註冊:2003-06-02 發送簡訊給我 |
hi,miga:
如果你要以TDateTimePicker來做為日期時間的輸入界面的話,那麼建議你可以另外用個TEdit或TDBEdit元件直接放在TDateTimePicker上面,把TDateTimePicker整個遮住,只讓TDateTimePicker右邊的下接式按鈕露出.然後在TDateTimePicker的OnChange事件裡控制.當user操作TDateTimePicker時,就把TDateTimePicker裡user指定的時間帶入到TDBEdit裡;當user未指定時間時,TDBEdit裡的資料就是空值.
理由是TDateTimePicker是一個讓user輸入TDateTime型態的資料.TDateTime就像是Integer一樣,不管你有沒有指定,裡面一定有一個值.這樣的情形無法表示出資料庫裡欄位內容為null的狀態.所以,你只能用另外的TDBEdit元件來搭配.
|
miga
初階會員 ![]() ![]() 發表:61 回覆:92 積分:30 註冊:2002-08-27 發送簡訊給我 |
cc,我是希望他在我沒輸入的時後可以不要存值下去
在資料庫中沒有值時可以顯示空白,而不是1899/12/30^^
不過你的答案也給我很大的提示哦
引言:引言: 請問一下: 假設我有一個DateTimePicker, 在存入資料庫時是允許未輸人, 我在formactive時有給他datetimepicker.Format:=' '讓他為空白 但我在存檔時,若沒輸入資料,卻會自動存入今天的日期, 請問有辦法讓他在未輸入資料時可以不會自動存今天日期嗎? miga您好:不知道有无理解错您的意思: 是不是说当datetimepicker为空时,则将保存一个空值至资料库中,您可以参考下面: procedure TForm1.Button1Click(Sender: TObject); begin with query1 do begin close; sql.Clear; sql.Add('select * from yourtablename'); open; append; if datetimepicker1.Format=' ' then fieldbyname('dat').Value:=null else fieldbyname('dat').AsDateTime:=datetimepicker1.Datetime; post; open; end; end; 另外,當我在資料庫裡沒資料時,他卻會自已顯示值為1899/12/30 实测时没发现有这个错误,可否PO多代码看看 該怎麼避免掉呢?——行径窄处,留一步与人行—— ——Never give up, never surrender—— |
deity
尊榮會員 ![]() ![]() ![]() ![]() ![]() ![]() 發表:90 回覆:876 積分:678 註冊:2003-05-09 發送簡訊給我 |
|
whatman
一般會員 ![]() ![]() 發表:3 回覆:10 積分:2 註冊:2002-04-15 發送簡訊給我 |
|
james_yu
一般會員 ![]() ![]() 發表:33 回覆:19 積分:10 註冊:2003-07-08 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |