我要是选kind为dtkTime时,显示的时间值和数据库中的实际值不一样,这个是什么原因?在线

解决方案 »

  1.   

    这个控件并不能自动改变它自已的时间,默认的显示时间是你创建该控件的时间。
    要想得到现在系统的时间,可以在相关事件中如FormCreate的里面,加上下边这条语句即可。
    self.DateTimePicker1.Time:=Now();
      

  2.   

    我在这只是举个例子,因为我并没有找到dbdatetimepicker控件,只好用datetimepicker来代替了,还得问你一个,dbdatetimepicker是Delphi自带的吗?用datetimepicker+籹据集操作(Edit,Post),也是一样可以做到,和我上面的方法差不多,一样不能挷定。等会我有空的,再给你写些代码,但我不保证对日期时间型字字段能够正常操作。
      

  3.   

    这是较为完整的代码
    procedure TForm1.FormCreate(Sender: TObject);
    begin
    self.ADOConnection1.Connected:=true;
    self.ADOTable1.Active:=true;
    end;procedure TForm1.ADOTable1BeforeScroll(DataSet: TDataSet);//当记录移动时发生的事件
    begin
    self.DateTimePicker1.DateTime:=self.DataSource1.DataSet.FieldByName('Data').AsDateTime;
    //上条语句用于读取时间
    end;procedure TForm1.Button2Click(Sender: TObject);
    begin
    self.DataSource1.Edit;
    self.DataSource1.DataSet.FieldByName('Data').AsDateTime:=self.DateTimePicker1.DateTime;
    self.DataSource1.DataSet.Post;
    //上三条语句用于写时间
    end;说明:我采用的是SQL Server 2000中的日期时间字段,能够正常工作。Data中就有我们要的时间。
    你需要一个DBGrid来看一下结果。同样,kind为dtkTime才显示时间。