为MinDate属性指定了一个大于MaxDate当前值的值
来源:互联网 发布:伊利莎白女伯爵 知乎 编辑:程序博客网 时间:2024/05/22 20:29
单位一应用软件,在一台电脑上运行某功能时提示“为MinDate属性指定了一个大于MaxDate当前值的值”,在其它电脑使用都正常。
经查询发现“为MinDate属性指定了一个大于MaxDate当前值的值” 提示是微软DTPicker控件的提示。表示为该控件MinDate属性设置值时大于了该控件MaxDate设置的值。
观察正常电脑上的情况,该控件MinDate会设置为从数据库中取出的一个值,MaxDate会设置为当前时间。
为啥就这台电脑会出错呢?没有思路直接重装机器,我晕,还是同样故障。
根据 https://support.microsoft.com/zh-cn/kb/198880内容发现设置这两个属性时会调用SendMessage给该控件发送消息。
上windbg调试器,设置断点:
bp User32!SendMessageA ".if(poi(esp+8) == 0x00001004) {} .else {gc}"
表示当调用SendMessageA函数并且第二个参数(消息类型)是0x00001004(DTM_SETRANGE消息)时中断,否则继续执行。
跟踪到一个结果如下:
可以看到第一个参数00050a50表示控件的hwnd,第二个参数00001004表示消息,第三个参数00000003表示同时设置mindate和maxdate,第四个参数0012d700是SYSTEMTIME结构数组地址。
0012d700地址行正好是mindate所有参数,00010641表示年月(interger类型为16位),0641表示1601年,0001表示1月,
0012d710地址行正好是maxdate所有参数,000707df表示年月(interger类型为16位),07df 表示2015年,0007表示7月,000d0001中的000d表示日13号。
等等,不对呀,今天应该是23号的。
在看系统时间,完了,果然是2015年7月13日。这就对了,前面说过“该控件MinDate会设置为从数据库中取出的一个值,MaxDate会设置为当前时间",
数据库中记录的值一定小于当前时间。系统时间设置过小了直接导致小于数据库中的时间。因此出错了。
本来以为当前时间会从数据库中取的,结果是这样。
0 0
- 为MinDate属性指定了一个大于MaxDate当前值的值
- datepicker插件实现开始日期(minDate)和结束日期(maxDate)
- WdatePicker minDate取值:WdatePicker值与当前系统时间较小值
- jquery获取指定属性为指定值的对象
- sga_target大于指定值的sga_max_size
- 求出一个表前面多少条记录的金额相加大于等于指定的值
- 反射(通过反射写一个通用的设置某个对象的某个属性为指定的值)
- 反射_通过反射写一个通用的设置某个对象的某个属性为指定的值
- 反射-通过反射写一个通用的设置某个对象的某个属性为指定的值
- 解决:My97DatePicker 日期插件引用在PHP文件中maxDate和minDate控制失效问题
- jquery 获取索引大于或小于指定值的元素
- ORA-01438: 值大于此列指定的允许精确度
- ORA-01438: 值大于为此列指定的允许精度
- ORA-01438: 值大于为此列指定的允许精度
- ORA-01438: 值大于为此列指定的允许精度
- ORA-01438: 值大于为此列指定的允许精度
- 开发日志:浏览器宽度大于400px,td的宽度按百分比自适应,小于400px时,宽度为指定的值
- jQuery ui 利用 datepicker插件实现开始日期(minDate)和结束日期(maxDate)(10级学员 林常禹总结)
- Android的API版本和名称对应关系
- 在android使用lambda表达式
- Spring MVC下跳转问题的总结
- 获得UIView对应 的viewController
- NSString什么时候用copy,什么时候用strong
- 为MinDate属性指定了一个大于MaxDate当前值的值
- POJ-1064 Cable master
- hdoj1106 排序*
- Dialog自定义布局
- 用真机测试的时候出现adb连接断开的解决办法
- 各种排序算法的实现,总结与比较
- POJ2816红与黑
- 设计模式学习笔记之单例模式
- safari浏览器访问问题