请教各位大哥,我用DateTimepicker控件绑定了ACCESS数据库的时间字段,新增记录时,DateTimepicker控件已经得到了当前系统时间,但是在我没人工选择时间字段时就保存,数据库中时间字段是空值。只有人工在DateTimepicker控件上选择后才能将时间入库。
绑定了ACCESS数据库时只是databindings的Text项,绑定Value项时会出错。

解决方案 »

  1.   

    其实很简单啊~~当你获得系统时间的时候,然后将其转换为String 型, 存储到数据库中Text 
      不就可以拉吗?
      

  2.   

    1. 新增记录时,DateTimepicker控件已经得到了当前系统时间,但是在我没人工选择时间字段时就保存,数据库中时间字段是空值。只有人工在DateTimepicker控件上选择后才能将时间入库。
    -----------------------------------------------------
    你可以在数据表的设计中将日期字段加上默认值Date().2. 绑定了ACCESS数据库时只是databindings的Text项,绑定Value项时会出错
    -----------------------------------------------------
    服务器控件哪儿有Value属性?
      

  3.   

    to sunjian_qi(sonne):
    很感谢您的回复!
    您的1回复可以解决问题,我原来也是这样解决的。
    您的回复2,DateTimepicker控件databindings有Checked,tag,value,text四项,好像只有Text可以和字段关联。
    ------------------------------------------
    可能是表达问题,我现在的目的是想知道为什么我没人工选择时间字段(就是在ateTimepicker控件上用鼠标点选日期)数据库时间字段数据就为空?在程序中如何解决。
    再次感谢您的回复,若能更深赐教,不胜感激。
      

  4.   

    to  sunjian_qi(sonne):  
    很抱歉,关于您1回复,我说错了,我原来是用SQL语句直接写库的,现在用的是DataSet,用默认值Getdate(),但时间字段数据仍然为空,说明DateTimepicker的值是NULL。 
    ==================================================================================
    可能是表达问题,我现在的目的是想知道为什么我没人工选择时间字段(就是在ateTimepicker控件上用鼠标点选日期)数据库时间字段数据就为空?在程序中如何解决。  
    再次感谢您的回复,若能更深赐教,不胜感激。  
      

  5.   

    问题1:应该DataTable的某个DataColumn的DefaultValue属性来设置默认值,不知楼主是否这样做的。
    tb.Columns[colName].DefaultValue = DateTime.Now;你用的数据库是Access这样做是没问题的,如果用的SQL Sever数据库,这样做有些问题,因为取得的是客户机的当前时间,而不是服务器的当前时间。问题2:因为DateTimepicker的Value是DateTime类型,所以你绑定的时候也要绑定DateTime类型的字段。且DateTimepicker不支持DBNull,因此你绑定的值如果是DBNull的话,得到的显示是当前时间,但是值却是DBNull。
      

  6.   

    还漏掉一个比较关键的问题,编辑完以后,你一定要调用DataGrid/DataRow/DataRowView的EndEdit()方法或者BindingManagerBase的EndCurrentEdit()方法。