C# 日期时间选择器格式

C# 日期时间选择器格式,c#,ms-access-2007,datetimepicker,C#,Ms Access 2007,Datetimepicker,我的日期时间选择器有问题。我是C#新手,正在开发一个独立的应用程序,使用MS Access 2007作为我的数据库 我有一个DateTimePicker(dtp_btime),格式为“Time”,自定义格式为“hh:mmtt”。 毫无疑问,它可以显示为“晚上10:30”。但是当我点击save时,它显然在DB表中保存了日期和时间 cmd.CommandText = "insert into Booking(cname, bdate, btime, ccontact, sname) Values(

我的日期时间选择器有问题。我是C#新手,正在开发一个独立的应用程序,使用MS Access 2007作为我的数据库

我有一个DateTimePicker(dtp_btime),格式为“Time”,自定义格式为“hh:mmtt”。 毫无疑问,它可以显示为“晚上10:30”。但是当我点击save时,它显然在DB表中保存了日期和时间

 cmd.CommandText = "insert into Booking(cname, bdate, btime, ccontact, sname) Values('" + txt_cname.Text + "','" + dtp_bdate.Value.Date + "','" + dtp_btime.Value + "','" + txt_ccontact.Text + "','" + txt_sname.Text + "')";

如何仅保存时间而不保存DateTimePicker中的日期?

如果它是access中的文本字段,您应该能够使用

dtp_btime.Value.ToString("hh:mm tt")

如果不是,则只需按原样存储日期和时间,并在报告中或任何显示位置仅显示时间部分。

这不是DateTimePicker的问题,而是数据库datetime类型的问题。数据库同时存储日期和时间。如果需要,可以对每列强制保存日期为01/01/0001或类似的内容。我不知道Access是否有只存储时间的数据类型,但我怀疑它。

您有SQL注入漏洞。@SLaks,您介意指出正确的方法吗?它如何告诉您SQL注入的可能性?谢谢您的帮助。一旦我将DB中的数据类型更改为Text并在INSERT语句中添加行,它就会工作。干杯Access没有数据存储—它是开发平台。“Access”当然是指它的默认数据库引擎Jet/ACE。只有一种日期/时间数据类型,并且它始终存储日期和时间(它存储为双精度,其中日期是整数部分,时间是小数部分)。您是对的,您说JET可能更准确,但怀疑大多数在access中进行开发的人是否理解这一区别=)。