delete is not same remove!!!

解决方案 »

  1.   

    you can set "AllowDelete = true"!
      

  2.   

    我设置还是不行,继续求教
    dv.AllowDelete = true ;
    dv[1].Delete() ;
      

  3.   

    你在删除 DataRow 之后,被删除行的状态更改为 DataViewRowState.Deleted。可通过针对 DataTable 调用 RejectChanges 来回滚该删除。
      

  4.   

    “回滚该删除”,我想指的是撤消删除吧,ROLL BACK作用,不是COMMIT作用吧
      

  5.   

    要将操作反映到数据库里好像要用DataSet的AcceptChanges()!
      

  6.   

    我不需要操作数据库呀,比如我第一次从数据库里面取10条记录出来,放在DataView里面,然后我以后的任何操作都是在这个DataView里面,不需要在和数据库联系了,修改、删除等等DataView操作,我都不需要和数据库联系,只需要改动DataView就可以了,但是好象DataView删除一条不是实际删除吧,是不是需要在加一个什么命令或者别的方法呢,反正我在用DataTable的时候,Delete()是实际删除了一条存在DataTable里面的记录,但是这次,我用DataView却提示那样的错误,我不知道如何解决,所以还是请各位高手帮忙!!!
      

  7.   

    我试过,用你的方法没问题,可能是DataView的绑定有问题。
        ICollection CreateDataSource0() {
            DataTable dt = new DataTable();
            DataRow dr;        dt.Columns.Add(new DataColumn("IntegerValue", typeof(Int32)));
            dt.Columns.Add(new DataColumn("StringValue", typeof(string)));
            dt.Columns.Add(new DataColumn("DateTimeValue", typeof(DateTime)));
            dt.Columns.Add(new DataColumn("BoolValue", typeof(bool)));
            dt.Columns.Add(new DataColumn("CurrencyValue", typeof(double)));        for (int i = 0; i < 9; i++) {
                dr = dt.NewRow();            dr[0] = i;
                dr[1] = "Item " + i.ToString();
                dr[2] = DateTime.Now;
                dr[3] = (i % 2 != 0) ? true : false;
                dr[4] = 1.23 * (i+1);
                dt.Rows.Add(dr);
            }

            DataView dv = new DataView(dt);
    dv[0].Delete(); 
            return dv;
        }