仅允许向前日期并阻止向后日期
Posted
技术标签:
【中文标题】仅允许向前日期并阻止向后日期【英文标题】:Allow only onward date and block backward date 【发布时间】:2021-08-18 10:19:18 【问题描述】:我将如何限制用户仅输入上一个输入日期的最大日期? 我只想在 SQL 和 c#.net 中在 windowform 中输入向前日期并阻止向后日期? 在打击图像文本框中“自动最近日期(最后日期)”是向后日期,文本框“输入下一个日期”是向前日期。
【问题讨论】:
为什么要这样限制最大日期?如果他们把价值放在未来,为什么重要? 只是约会先生...例如如果日期。 20-05-2021 已在 db 中输入,然后我只想输入 21-05-2021 日期。我想在插入记录之前限制 19-05-2021 日期。 先生,我想限制用户向后进入,而不是从下一个日期/未来日期...... 你为什么要这样做?我问的原因是有一天有人会弄错日期(通常是在新年伊始左右)。这种规则会狠狠地咬你一口。因为不仅该日期是错误的没有其他人将能够输入任何数据(也许再过一年!)。这试图解决什么实际问题? 如果您只想输入未来日期,您需要设置 X 的最小日期,而不是最大日期 【参考方案1】:您清楚地知道如何查询数据库,所以运行如下查询:
SELECT MAX(somedate) FROM courtcases WHERE casenumber = @whatever
并在您的日期时间选择器上使用它的输出
nextDateDateTimePicker.MinDate = <the DateTime you queried>
如果最小日期是一天之后,请在您查询的日期使用 AddDays(1)
(这看起来不像是标准的 win 表单 datetimepicker,但我相信你使用的任何东西都会有类似的功能)
我认为您不需要保护您的插入 sql 免受黑客攻击,以确保用户没有以某种方式修改 ui 并在其中输入非法日期
【讨论】:
以上是关于仅允许向前日期并阻止向后日期的主要内容,如果未能解决你的问题,请参考以下文章
Schedule 方法求向前向后的日期----- 关于GlideSchedule.add的拓展