C# winform 为什么用dateTimePicker控件查询只能查询到月份,日那里就查询不了???

时间:2022-11-05 23:00:42
所用数据库为SQLite  
查询语句如下:  SELECT  *  from  表1  WHERE 开始时间>datetime('2014-05-10')
查询显示的结果可以显示2014-05-11以后的的数据;如图 C# winform 为什么用dateTimePicker控件查询只能查询到月份,日那里就查询不了???

但是当加入dateTimePicker 控件后,修改查询语句
string st = dateTimePicker1.Value.ToString("yyyy-MM-dd");
string stc = " ' " + st + " ' ";
" SELECT  *  from  表1  WHERE 开始时间>datetime("  +  stc +  ")"
点击dateTimePicker控件仍然选择2014-05-11,可只能显示2014-06-01以后的数据,2014-05-11到2014-05-31的数据直接不显示;如图 C# winform 为什么用dateTimePicker控件查询只能查询到月份,日那里就查询不了???

明明字符串stc='2014-05-10',可两个结果怎么会不一样呢???求高手指教!!!不胜感激!!!

11 个解决方案

#1


面对这种问题,完全不知道从何下手啊,有木有人碰到过类似的呢??? C# winform 为什么用dateTimePicker控件查询只能查询到月份,日那里就查询不了???C# winform 为什么用dateTimePicker控件查询只能查询到月份,日那里就查询不了???C# winform 为什么用dateTimePicker控件查询只能查询到月份,日那里就查询不了???

#2


用的事件 private void dateTimePicker1_ValueChanged(object sender, EventArgs e),感觉是不是因为这个事件用的有问题

#3


刚刚发现,当点击控件选中2014-01-11,显示结果与选中2014-05-10,一模一样,都是直接从6月份显示,2、3、4月份的数据都没显示,这到底是怎么回事啊????

#4


调试你的stc变量。

#5


目测引号内多了空格。

#6


今天是2014-05-15,刚试了一下,发现点击控件今天之前的任意一天,都默认至少从今天开始查询,如果选中2014-06-11,可以显示2014-06-12以后的数据,这到底是怎么回事呢?难道今天之前的数据查询不了了???

#7


引用 4 楼 sp1234 的回复:
调试你的stc变量。
变量是没有问题,我是为了大家看得方便才写开来,在程序中是没有空格的

#8


引用 5 楼 caozhy 的回复:
目测引号内多了空格。
变量是没有问题,我是为了大家看得方便才写开来,在程序中是没有空格的

#9


SQLite  没用过 给楼主顶顶

#10


首先你字段开始时间是什么数据类型,date,datetime还是string,其次你三句话中完全可以省掉一句,直接用" SELECT  *  from  表1  WHERE 开始时间>datetime(dateTimePicker1.Value.ToString("yyyy-MM-dd"))",我目测你变量转类型的时候有问题。最后,你调试的时候步进,看看到底你的每个变量到底是多少,类型一致吗,等等

#11


引用 10 楼 songzhao85 的回复:
首先你字段开始时间是什么数据类型,date,datetime还是string,其次你三句话中完全可以省掉一句,直接用" SELECT  *  from  表1  WHERE 开始时间>datetime(dateTimePicker1.Value.ToString("yyyy-MM-dd"))",我目测你变量转类型的时候有问题。最后,你调试的时候步进,看看到底你的每个变量到底是多少,类型一致吗,等等

谢谢你的回答,是事件用错了,应该用dateTimePicker1_CloseUp事件,用这个就解决问题了

#1


面对这种问题,完全不知道从何下手啊,有木有人碰到过类似的呢??? C# winform 为什么用dateTimePicker控件查询只能查询到月份,日那里就查询不了???C# winform 为什么用dateTimePicker控件查询只能查询到月份,日那里就查询不了???C# winform 为什么用dateTimePicker控件查询只能查询到月份,日那里就查询不了???

#2


用的事件 private void dateTimePicker1_ValueChanged(object sender, EventArgs e),感觉是不是因为这个事件用的有问题

#3


刚刚发现,当点击控件选中2014-01-11,显示结果与选中2014-05-10,一模一样,都是直接从6月份显示,2、3、4月份的数据都没显示,这到底是怎么回事啊????

#4


调试你的stc变量。

#5


目测引号内多了空格。

#6


今天是2014-05-15,刚试了一下,发现点击控件今天之前的任意一天,都默认至少从今天开始查询,如果选中2014-06-11,可以显示2014-06-12以后的数据,这到底是怎么回事呢?难道今天之前的数据查询不了了???

#7


引用 4 楼 sp1234 的回复:
调试你的stc变量。
变量是没有问题,我是为了大家看得方便才写开来,在程序中是没有空格的

#8


引用 5 楼 caozhy 的回复:
目测引号内多了空格。
变量是没有问题,我是为了大家看得方便才写开来,在程序中是没有空格的

#9


SQLite  没用过 给楼主顶顶

#10


首先你字段开始时间是什么数据类型,date,datetime还是string,其次你三句话中完全可以省掉一句,直接用" SELECT  *  from  表1  WHERE 开始时间>datetime(dateTimePicker1.Value.ToString("yyyy-MM-dd"))",我目测你变量转类型的时候有问题。最后,你调试的时候步进,看看到底你的每个变量到底是多少,类型一致吗,等等

#11


引用 10 楼 songzhao85 的回复:
首先你字段开始时间是什么数据类型,date,datetime还是string,其次你三句话中完全可以省掉一句,直接用" SELECT  *  from  表1  WHERE 开始时间>datetime(dateTimePicker1.Value.ToString("yyyy-MM-dd"))",我目测你变量转类型的时候有问题。最后,你调试的时候步进,看看到底你的每个变量到底是多少,类型一致吗,等等

谢谢你的回答,是事件用错了,应该用dateTimePicker1_CloseUp事件,用这个就解决问题了