关于时间保存!

dingjuntm 2004-11-05 09:23:56
我用一个DateTimePicker1控件保存时间,我把showcheckbox设置为ture.
Dim overdate As date
If Me.DateTimePicker1.Checked = True Then
overdate = Me.DateTimePicker1.Value.Date
Else
overdate = ""
End If
我用一个
Dim sqlAdd As String
sqlAdd = "insert productpross(poverdate)values('"& overdate &"')
保存在数据库里
当 Me.DateTimePicker1.Checked = True 时是正确时间,
当Me.DateTimePicker1.Checked = False时,就不是为空了,而是默认为:1900-01-01
我想保存在数据库里为空或者为NULL都可以,
有哪位高手遇到过这种情况,请指点一下,谢谢了!




...全文
140 13 打赏 收藏 转发到动态 举报
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
oo渣渣oo 2004-11-09
  • 打赏
  • 举报
回复
第一行打错了个字:"定义不"应为"定义为"!
oo渣渣oo 2004-11-09
  • 打赏
  • 举报
回复
你可以把数据库里的日期字段直接定义不CHAR或NVARCHAR,不必一定要用日期型的
这样你在程序里可以直接使用字符串,大大减少代码量.
我一直这样用,还没出过问题
dingjuntm 2004-11-09
  • 打赏
  • 举报
回复
你说的这种方法,我现在已经用了,但认为太麻烦,因为在一个保存请句里,有三个这样的字段要这样保存,这样就会出现8种情况去分别讨论.不过很是谢谢你,看得出你认真看过我的问题.(TO水如烟朋友)

还有谁有更好的办法,让我不要写那么冗余的代码!谢谢,
水如烟 2004-11-08
  • 打赏
  • 举报
回复
If ... Then
sqlAdd = "insert productpross(poverdate)values('"& overdate &"')
Else
sqlAdd = "insert productpross(poverdate)values(Null)"
End If
dingjuntm 2004-11-08
  • 打赏
  • 举报
回复
当overdate = "NULL"就会报错了.报错说,NULL没有定义.
dingjuntm 2004-11-08
  • 打赏
  • 举报
回复
当overdate = "NULL"就会报错了.
当Me.DateTimePicker1.Checked = False时可以用下面请句,
sqlAdd = "insert productpross(poverdate)values(NULL)
但当Me.DateTimePicker1.Checked = True 时,又会报错.说类型无法转换.


水如烟 2004-11-08
  • 打赏
  • 举报
回复
NULL的时候,这里是
sqlAdd = "insert productpross(poverdate)values(NULL)
yani_33 2004-11-08
  • 打赏
  • 举报
回复
If Me.DateTimePicker1.Checked = True Then
overdate = Me.DateTimePicker1.Value.Date
Else
overdate = "NULL"
End If

水如烟 2004-11-08
  • 打赏
  • 举报
回复
If Me.DateTimePicker1.Checked = True Then
overdate = Me.DateTimePicker1.Value.Date
Else
overdate = "NULL"
End If
dingjuntm 2004-11-08
  • 打赏
  • 举报
回复
谁还有更好的办法呢
2zhk 2004-11-06
  • 打赏
  • 举报
回复
DateTimePicker1.Format = DateTimePickerFormat.Custom
DateTimePicker1.CustomFormat = " "引号内为一个空格。
用DateTimePicker1的text负值,这样就可以获得null值了
youlongzaitian 2004-11-06
  • 打赏
  • 举报
回复
对呀,是不可以的,它有默认值!
shengrong_cai 2004-11-05
  • 打赏
  • 举报
回复
不能为空或者为NULL!
其理和int型的一样默认是0,
smalldate默认
1900-01-01
范围1900-01-01~2079-12-31;
除非把字段类型设为nvarchar型

16,555

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧