首页 新闻 会员 周边 捐助

c# winform datagridview筛选数据显示不全

0
悬赏园豆:15 [已解决问题] 解决于 2015-12-08 11:18

在datagridview中,显示全部数据,但是进行筛选时,有些数据显示不全。这是什么原因?

例如一个学校有很多班级,每个学生的学号都是不一样的,分别是以“100“,”600“,”322“,”555“,"699"开头的,现在我要筛选出以学号600,555开头的学生,以555开头的可以全部显示,但是600就会显示部分

string[] strRows = Result.ToString().Split('\n');
                    int RowsNum = strRows.Length;


                    for (int i = 1; i < RowsNum; i++)
                    {
                        string[] temColum = strRows[i].Split('\t');
                        if (temColum[0].StartsWith("600")||temColum[0].StartsWith("555"))
                        {
                            dataGridView1.Rows.Add(temColum);

乖丫头不乖的主页 乖丫头不乖 | 初学一级 | 园豆:113
提问于:2015-12-07 10:05
< >
分享
最佳答案
1

你测一下只筛选600的是全部显示的吗?

收获园豆:15
Firen | 大侠五级 |园豆:5385 | 2015-12-08 09:40

没有显示全部

乖丫头不乖 | 园豆:113 (初学一级) | 2015-12-08 09:47

@乖丫头不乖:

不做任何过滤的时候,600的是否全都显示?

改成temColum[0].TrimStart().StartsWith("600") 试试。

或者用取反的方式进行过滤。

Firen | 园豆:5385 (大侠五级) | 2015-12-08 09:53

@Firen: 好的,我现在试一下子

乖丫头不乖 | 园豆:113 (初学一级) | 2015-12-08 09:54

@Firen: 我试了,他还是没有显示600的全部信息

乖丫头不乖 | 园豆:113 (初学一级) | 2015-12-08 10:00

@Firen: 而且他比之前现实的数据还要少

乖丫头不乖 | 园豆:113 (初学一级) | 2015-12-08 10:01

@乖丫头不乖: 说明不是过滤的问题,是你的数据来源出了问题。

Firen | 园豆:5385 (大侠五级) | 2015-12-08 10:10

@Firen: 但是如果像你说的哪样,为什么他能获取所有的呢,在所有的里面600是可以全部显示的

乖丫头不乖 | 园豆:113 (初学一级) | 2015-12-08 10:11

@乖丫头不乖: 我要被你搞晕了… 不做任何过滤的时候,600是全部显示的?

Firen | 园豆:5385 (大侠五级) | 2015-12-08 10:15

@Firen: 我的意思是:当我获取全校所有同学的学号时,他是可以全部显示出来的,但是当我筛选部分的时候他就会显示不全

乖丫头不乖 | 园豆:113 (初学一级) | 2015-12-08 10:18

@乖丫头不乖: 你分别截个图看看。

Firen | 园豆:5385 (大侠五级) | 2015-12-08 10:19

@Firen: 谢谢你,问题我知道是什么了

乖丫头不乖 | 园豆:113 (初学一级) | 2015-12-08 11:18
其他回答(1)
0

你可以使用 like,例如:

DataView dv = ds.Tables[0].DefaultView;
dv.RowFilter = "Like '555%' or Like '600%';
this.datagridview1.DataSource = dv;

InProsperity | 园豆:194 (初学一级) | 2015-12-07 10:13

不好意思,我没有表达清楚,我的不是从数据库中获取的,而是第三方调取的,你这种方法可以吗??

支持(0) 反对(0) 乖丫头不乖 | 园豆:113 (初学一级) | 2015-12-07 10:30
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册