1

是否可以使用 c# 在现有数据集的中间添加一行?我进行了很多搜索,但无法找到有关如何执行此操作的任何内容。我尝试了什么?我已经尝试了很多搜索,但没有找到像数据集的“insertAt”方法之类的东西。谢谢迈克

4

4 回答 4

3

DataSet 由一组 DataTable 对象组成,所以我假设您在谈论 Datatable,对吗?如果是这样,它有一个InsertAt方法:

DataTable dt = dataset.Tables[0]; //Get first datatable from dataset
DataRow row = dt.NewRow();
//fill row
dt.Rows.InsertAt(row,3); //Insert at index 3
于 2013-05-16T20:15:41.097 回答
1

DataSet 没有行集合,因此您根本无法向其中添加行。

您可以使用索引将行插入到 DataTable 对象中DataTable.Rows.InsertAt(row, i)。如果表在数据集中,您的语法将是DataSet.Tables[i].Rows.InsertAt(row, 0)

于 2013-05-16T20:17:10.680 回答
0

在我看来(虽然这可能需要很多时间),您可以创建一个数组或列表数组,然后通过 for 循环或任何循环从您的数据集中传输所有数据......然后在里面放一个 if 语句来检查哪里你想把你的额外数据是这样的:

List<string> arrayList = dataset;// i know this is not possible just showing you that you have to put all your data from dataset to array:)
List <string> newList = new List<string>();//its up to you if you want to put another temporary array or you could simply output your data from the loop.
//THE LOOP
for(int i = 0; i<=arrayList.Count(); i++){
    if(i == x)//x is the index or you may change this statement its up to you
  {
    //do the print or pass the data to newList
      newList.add(arraList[i]);//not sure about this. its been a while since the last time i use this array list..
  }
}

另一种方法是自定义您的查询(如果您从数据库中提取一些数据)

快乐编码:)

于 2013-05-16T20:13:15.213 回答
0

这是一个简短的示例:

class Program
{
    static void Main(string[] args)
    {
        DataSet ds = new DataSet();

        DataTable dt = ds.Tables.Add("Table");
        dt.Columns.Add("Id");
        for (int i = 0; i < 10; i++)
        {
            dt.Rows.Add(new object[]{i});
        }

        var newRow=dt.NewRow();
        newRow.ItemArray=new string[]{(dt.Rows.Count/2).ToString()+".middle"};
        dt.Rows.InsertAt(newRow, dt.Rows.Count / 2);
    }
}
于 2013-05-16T20:22:28.633 回答