gpt4 book ai didi

c# - 排序后删除给定行索引的行 C#

转载 作者:行者123 更新时间:2023-11-30 21:08:52 25 4
gpt4 key购买 nike

我用 bindnig 源建立我的数据网格:

    SqlDataAdapter adapter = new SqlDataAdapter(Datenbank.cmd);
dataSet1.Tables.Clear();
adapter.Fill(dataSet1, "Table");
bs = new BindingSource();
bs.DataSource = dataSet1.Tables["Table"];
dataGridView1.DataSource = bs;

现在我对网格进行排序

    bs.Sort = "customer DESC";

现在我想删除第 0 行

    dataSet1.Tables[0].Rows.RemoveAt(0);

但是,排序前位于位置0的行将被删除,而不是现在位于位置0的行

//编辑: test.Tables[0].Rows.InsertAt(newRow, 0); 是否有相似之处?

最佳答案

为什么不使用绑定(bind)源删除它例如

  bs.RemoveAt(0)

关于 test.Tables[0].Rows.InsertAt(newRow, 0);

BindingSource.Insert(int, object)BindingSource.List.Insert(int, object) 看起来不错,但当源是数据集时不支持.

这是因为 BindingSource.Insert 只是在基础列表上调用 System.Collections.IList.Insert()。底层列表是一个 DataView。 Insert on Dataview的实现是

private void System.Collections.IList.Insert(int index, object value)
{
throw ExceptionBuilder.InsertExternalObject();
}

你可以通过

显示这个
 System.Data.DataView dv = bs.List as DataView;
System.Collections.IList list = dv;
list.Insert(0,newRow); //BANG InsertExternalObject exception

关于c# - 排序后删除给定行索引的行 C#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9335282/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com