Rss & SiteMap
Foxtable(狐表) http://www.foxtable.com
窗口中有一DateTimePicker控件,绑定到表中的日期型列,当在控件中不输入日期,然后保存表的时候,默认的把"0001-01-01"保存到表中的日期型字段中,这个有办法改变吗?就是不输入日期的时候,保存后该字段就为空值,而不是现在的默认值。
另外:如果我在窗口中把TextBox绑定到日期型列,虽然该日期型列的日期时间格式设置为:date,但是窗口中还是显示这样的格式:
2010-09-09 0:00:00,怎么改回正常啊?
窗口中有一DateTimePicker控件,绑定到表中的日期型列,当在控件中不输入日期,然后保存表的时候,默认的把"0001-01-01"保存到表中的日期型字段中,这个有办法改变吗?就是不输入日期的时候,保存后该字段就为空值,而不是现在的默认值。
我还没碰到过这种事情。
如果是这种操作对话我会这样做。
Dim dr1 As Row =Tables("表A").current
Dim dr2 As Row =Tables("表B").addnew
If dr1.IsNull("第一列") = False Then
dr2("第一列") = dr1("第一列")
End If
给你贴段帮助:
空值的判断
假定某个表的金额列,由单价、数量、折扣三列计算得出,此外年、月两列,由日期列计算得出。
根据我们之前的经验,可以将该表的DataColChanged事件设置为:
Dim
dr As DataRow = e.DataRow上面的代码看上去很完美,金额、年、月三列都能自动计算得出,可真的没问题吗?
我们来测试一下,你先在某行输入日期,年、月两列的值确是自动计算得出了,可是如果你删除日期列的内容,按道理年、月列的内容应该为空。
但事实上,年、月都会等于1,原因何在呢?
这是因为在日期列为空的时候,通过行返回的日期值并不是空值,而是等于: #0001-01-01#
所以为了“完美”,我们将DataColChanged事件代码改为:
Dim
dr As DataRow = e.DataRow这样输入日期,年、月列的值能自动计算得出,删除日期,年、月列也会自动被清空。
再谈空值
……
在某列内容为空的时候,会根据不同的列类型,返回不同的值,规则如下:
字符列:""
数值列:0
逻辑列:False
日期列:#0001-01-01 0:00:00#
另外:如果我在窗口中把TextBox绑定到日期型列,虽然该日期型列的日期时间格式设置为:date,但是窗口中还是显示这样的格式:
2010-09-09 0:00:00,怎么改回正常啊?
这个问题是什么原因呢?
不存在单独的时间型字段。
如果不想显示日期的部分,用DateTimePicker输入,选择合适的日期时间格式。