| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 727 人关注过本帖
标题:用两个dateTimePicker选择access数据库中的内容时出错,请各位看代码
只看楼主 加入收藏
weilight2008
Rank: 1
等 级:新手上路
帖 子:111
专家分:4
注 册:2005-10-5
结帖率:50%
收藏
已结贴  问题点数:20 回复次数:7 
用两个dateTimePicker选择access数据库中的内容时出错,请各位看代码
用了两个dateTimePicker,分别是“dateTimePicker起始时间”和“dateTimePicker终止时间”,我想获得该时间段内的数据,我的代码如下:
程序代码:
OleDbConnection connection = new OleDbConnection();
                    connection.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=kucun.mdb";
                    connection.Open();
                    OleDbCommand mycommand = new OleDbCommand("select 日期,乌首站北疆油,独山子总库存 from 库存统计表 where 日期 between '" + dateTimePicker起始时间.Value.Date.ToString() + "'and '" + dateTimePicker终止时间.Value.Date.ToString() + "'", connection);
                    DataSet ds = new DataSet();
                    OleDbDataAdapter myadapter = new OleDbDataAdapter(mycommand);
                    myadapter.Fill(ds, "库存统计表");
                    this.dataGridView1.DataSource = ds.Tables["库存统计表"];
                    connection.Close();
                    mycommand.Dispose();
目前,出现的错误是搜索到的数据不是两个dateTimePicker之间的数据,请各位指点,谢谢。
比如我选择的起始时间是2013年9月1日,终止时间是2013年9月3日,搜到的日期有9月1日到9月21日的。
----------------------------------------------------------------------------------------------------------------------------------------
增加提问:
我现在发现在搜索的时候好像只对比日期十位数的数字,比如,搜索起始时间是2013年9月1日,终止时间是2013年9月3日,这样,只要十位数在1和3之间,就能被选取,而4日、5日、6日等都不在1和3之间,就选取不到,这是我个人今天早上发现的情况,不知道有没有遇到过这种问题的。


[ 本帖最后由 weilight2008 于 2013-9-10 08:25 编辑 ]
搜索更多相关主题的帖子: access 数据库 时间段 
2013-09-09 17:21
lxb932979339
Rank: 5Rank: 5
等 级:职业侠客
威 望:4
帖 子:84
专家分:313
注 册:2013-4-24
收藏
得分:0 
OleDbDataAdapter 数据适配器不需要手写打开和关闭,代码没看出什么问题,设断点看下,起始时间以及结束时间取值是不是对的~~~
2013-09-09 21:01
weilight2008
Rank: 1
等 级:新手上路
帖 子:111
专家分:4
注 册:2005-10-5
收藏
得分:0 
回复 2楼 lxb932979339
我看了,取值是对的,可是就是最后取得的时间段不对。

生活不相信眼泪,勇敢去拼。
2013-09-10 08:04
Maick
Rank: 9Rank: 9Rank: 9
等 级:贵宾
威 望:32
帖 子:251
专家分:1314
注 册:2012-9-21
收藏
得分:10 
看你的问题.像是没按日期比较了..直接用字符串来比较了..
请问你的日期字段是varchar,.还是datetime 类型
2013-09-10 11:10
shangsharon
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
威 望:7
帖 子:221
专家分:1261
注 册:2012-3-25
收藏
得分:0 
select [time] from [table] where [time] > #2013-09-10 18:48:59#
注意格式,规范
2013-09-10 18:48
weilight2008
Rank: 1
等 级:新手上路
帖 子:111
专家分:4
注 册:2005-10-5
收藏
得分:0 
回复 4楼 Maick
后来我把数据库内部的时间格式调整为“日期/时间”,又把datetimepicker获取的值转换为datetime格式,再改了改command, "select * from 库存统计表 where 日期=#" + date+"#";就ok了。但是还有一点不明为什么要加“#”,而不是“'”?

生活不相信眼泪,勇敢去拼。
2013-09-11 08:14
weilight2008
Rank: 1
等 级:新手上路
帖 子:111
专家分:4
注 册:2005-10-5
收藏
得分:0 
回复 5楼 shangsharon
好的,受教了。
还有一个问题,为什么要在时间的前后加上#?

生活不相信眼泪,勇敢去拼。
2013-09-11 08:17
shangsharon
Rank: 9Rank: 9Rank: 9
来 自:湖北武汉
等 级:蜘蛛侠
威 望:7
帖 子:221
专家分:1261
注 册:2012-3-25
收藏
得分:10 
回复 7楼 weilight2008
Access数据库的时间就是这个格式,标准不是我制定的呢.
2013-09-11 10:50
快速回复:用两个dateTimePicker选择access数据库中的内容时出错,请各位看代码
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.022211 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved