在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);
你测一下只筛选600的是全部显示的吗?
没有显示全部
@乖丫头不乖:
不做任何过滤的时候,600的是否全都显示?
改成temColum[0].TrimStart().StartsWith("600") 试试。
或者用取反的方式进行过滤。
@Firen: 好的,我现在试一下子
@Firen: 我试了,他还是没有显示600的全部信息
@Firen: 而且他比之前现实的数据还要少
@乖丫头不乖: 说明不是过滤的问题,是你的数据来源出了问题。
@Firen: 但是如果像你说的哪样,为什么他能获取所有的呢,在所有的里面600是可以全部显示的
@乖丫头不乖: 我要被你搞晕了… 不做任何过滤的时候,600是全部显示的?
@Firen: 我的意思是:当我获取全校所有同学的学号时,他是可以全部显示出来的,但是当我筛选部分的时候他就会显示不全
@乖丫头不乖: 你分别截个图看看。
@Firen: 谢谢你,问题我知道是什么了
你可以使用 like,例如:
DataView dv = ds.Tables[0].DefaultView;
dv.RowFilter = "Like '555%' or Like '600%';
this.datagridview1.DataSource = dv;
不好意思,我没有表达清楚,我的不是从数据库中获取的,而是第三方调取的,你这种方法可以吗??