下面两段代码是我想要得到不为空的DataView和为空的DataView,请帮忙看一下有什么问题。
'符合条件的纪录
strRowFilter = "trim(objects.ne_code)<>'' or objects.ne_code is not null"
dsDataView = New DataView(dsData.Tables(0), strRowFilter, "objects.ne_code", DataViewRowState.CurrentRows)
 '不符合条件的纪录
strRowFilterBack = "trim(objects.ne_code)='' or objects.ne_code is null"
dsDataViewBack = New DataView(dsData.Tables(0), strRowFilterBack, "objects.ne_code", DataViewRowState.CurrentRows)说明:我的DataSet是根据Excel获得的
问题:这种情况下,我的dsData.Tables(0)是否会发生变化(主要是经过第一个过滤以后的)
谢谢!!!

解决方案 »

  1.   

    如果你的过滤是针对DataView,那么你的ds.Tables[0]中的数据是没有变化的。
      

  2.   

    什么叫做针对DataView啊!
      

  3.   

    直接使用ds.Tables[0].DefaultView来进行操作
    并且当做数据源来使用
      

  4.   

    如果我写的是正确的,那为什么DataView没有数据阿!
      

  5.   

    楼上的,我要这么做就是因为我需要用同样的数据来过滤,
    如果用ds.Tables(0).DefaultView可能就达不到我要的效果了
      

  6.   

    先看看DataSet对象有没有记录,如果有,可能是你的过滤条件出现问题,致使没有记录.
      

  7.   

    我就是不明白什么是“过滤是针对DataView”
    我写得那样算是吗?
      

  8.   

    我用的时Informix数据库,过滤条件应该没有问题吧!
    哎,这种问题真的很烦啊!
      

  9.   

    DataView.RowFilter=""
    这就是针对DataView过滤的
      

  10.   

    1.
    Public Sub New(ByVal table As System.Data.DataTable, ByVal RowFilter As String, ByVal Sort As String, ByVal RowState As System.Data.DataViewRowState)2.
    "trim(objects.ne_code)<>'' or objects.ne_code is not null" objects是表名?
      

  11.   

    2个星的说得没错,所谓的RowFilter其实是DataView的Filter,楼主可能还没弄明白
    DataSet.Tables[0]和DataSet.Tables[0].DefaultView之间的区别
    其实他们就象是数据库中的表和视图一样关系,视图可以是经过筛选的表,也可以是未经过筛选的,Filter的作用也就是对Table进行筛选然后生成View,而原来Table中的数据还是存在的,只不过在View中看不到而已,如果调用Table,还是看得到的
      

  12.   

    先看看DataSet对象有没有记录,如果有,可能是你的过滤条件出现问题,致使没有记录.
      

  13.   

    tingchao(恨水的鱼)
    第一个我明白是DataView的构造函数,是不是所说的针对DataView啊!
    第二个objects.ne_code是我在dsData.Tables(0)中的列名
      

  14.   

    joffre(霞飞) 
    你的意思是我不管用何种方式,dsData.Tables(0)是不变的是吗?
    但是好像如果用dsData.Tables(0).DefaultView,然后进行过滤,好像dsData.Tables(0)的数据是会随着过滤条件改变吧!