标题:关于数据库的问题请教!
只看楼主
hmqr
Rank: 2
等 级:论坛游民
帖 子:26
专家分:15
注 册:2010-3-2
结帖率:100%
已结贴  问题点数:10 回复次数:6 
关于数据库的问题请教!
各位高手:

 小弟最近在编一个数据库方面的小程序,主要是有两个表,主表中包含ID、SITENAME等字段,从表中包含ID、DATETIME等字段,

我希望在同一个窗口中用系统生成的导航条浏览主表的SITENAME字段,同时用一个datagridview控件显示从表中的对应记录

于是我把SITENAME字段绑定到一个textbox控件上,系统为此自动生成了tbSITEbindingSource控件,同时为我生成了导航条

接着我把datagridview绑定到了从表上,系统为此自动生成了tblogBindingSource控件。程序如果运行,点击导航条的话textbox中的

值必然变化,我希望此时datagridview中的记录只显示对应站点的记录,同时还需要这些记录的DATETIME属性在一定范围内的才显示,

也就是说需要用两个条件对datagridview中的记录进行筛选,一个是textbox中的SITENAME对应的ID,另一个是DATETIME。

我查了一些资料,说是可以用BindingSource的filter属性进行限制,但好像只能限制一个条件,我这里两个条件怎么办?

刚接触这方面的知识,还望各位多指教,谢谢了!
 
搜索更多相关主题的帖子: 数据库 
2010-11-08 23:19
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:0 
BindingSource里面怎么实现多个Filter么?楼主的意思是说同时过滤   就想搜索2个关键   只要符合其中一个关键字就可以算通过 是这样么?
 例如
 bs.Filter   =   "ID= '1 '   or  DATETIME= '1 ' ";

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-11-09 08:49
hmqr
Rank: 2
等 级:论坛游民
帖 子:26
专家分:15
注 册:2010-3-2
得分:0 
回复 2楼 wangnannan
谢谢你的关注,见到你真高兴
我的意思是我的DatagridView中的记录需要同时满足两个条件:
第一个是与主表中的站点名称匹配的从表记录,站点名称在主表中是唯一的,但我没有用作关键字段,而是用了个ID来代替
第二个条件是需要满足第一个条件的情况下,还需要满足从表中的字段DateTime字段在一定范围内。
同时满足两个条件的字段才被显示在DatagridView中。
2010-11-09 09:05
jyc429
Rank: 2
等 级:论坛游民
帖 子:8
专家分:35
注 册:2010-11-8
得分:3 
筛选
    DataView dv = ds.Tables[0].DefaultView;
    dv.RowFilter = "ID>3 and ID<10";
    如果是时间或字符串时变量两边加' '
    this.datagridview1.DataSource = dv;
2010-11-09 09:19
wangnannan
Rank: 18Rank: 18Rank: 18Rank: 18Rank: 18
等 级:贵宾
威 望:87
帖 子:2545
专家分:9359
注 册:2007-11-3
得分:7 
filter里就是sql的搜索条件 楼主可以把两个条件写出sql文 例如id=1 and  DateTime between '1999-01-01' and '2010-10-2'
赋值给BindingSource的filter就可以了

出来混,谁不都要拼命的嘛。 。拼不赢?那就看谁倒霉了。 。有机会也要看谁下手快,快的就能赢,慢。 。狗屎你都抢不到。 。还说什么拼命?
2010-11-09 09:25
hmqr
Rank: 2
等 级:论坛游民
帖 子:26
专家分:15
注 册:2010-3-2
得分:0 
回复 5楼 wangnannan
好的,谢谢了
2010-11-09 09:34
hmqr
Rank: 2
等 级:论坛游民
帖 子:26
专家分:15
注 册:2010-3-2
得分:0 
回复 5楼 wangnannan
            DateTime dt = monthCalendar1.SelectionStart;
            int currentID =(int)(((DataRowView)tb_SiteInfoBindingSource.Current)["ID"]);
            DateTime begin=new DateTime(dt.Year,dt.Month,1);
            DateTime end= begin.AddMonths(1);
            string filter = string.Format("ID={0} and DATETIME between '{1}' and '{2}'", currentID, begin, end);
            dataGridView1.DataSource = tbDayLogBindingSource;
            tbDayLogBindingSource.Filter = filter;

大哥,帮忙看看有什么问题,为什么DateGridView中的数据还是没有筛选
2010-11-09 10:48



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-325342-1-1.html




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

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