2009-06-24 64 views
4

如何在数据表中的现有行之间添加行? 谢谢在行之间添加Datarow?

+0

你在中间呢?不追加!!?如果是的话,为什么? – 2009-06-24 14:32:41

+0

是在中间。我计算一些数据,然后他们必须添加在中间 – subprime 2009-06-24 14:38:23

回答

13

dataTable.Rows.InsertAt(DataRow row, int position);


样品:

using System; 
using System.Collections.Generic; 
using System.Text; 
using System.Data; 

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static DataTable getDataTable() 
     { 
      DataTable table = new DataTable(); 
      table.Columns.Add("userID", typeof(int)); 
      table.Columns.Add("userName", typeof(string)); 
      table.Columns.Add("isAwesome", typeof(bool)); 
      return table; 
     } 

     static DataRow getRow(DataTable table, int userID, string userName, bool isAwesome) 
     { 
      DataRow row = table.NewRow(); 
      row["userID"] = userID; 
      row["userName"] = userName; 
      row["isAwesome"] = isAwesome; 
      return row; 
     } 

     static void printTable(DataTable table) 
     { 
      foreach (DataRow row in table.Rows) 
      { 
       foreach (object val in row.ItemArray) 
       { 
        Console.Write("{0}, ", val); 
       } 
       Console.WriteLine(); 
      } 
     } 


     static void Main(string[] args) 
     { 
      DataTable table = getDataTable(); 
      table.Rows.Add(getRow(table, 1, "Juliet", true)); 
      table.Rows.Add(getRow(table, 2, "Sean Hannity", false)); 
      table.Rows.Add(getRow(table, 3, "Charles Darwin", true)); 

      Console.WriteLine("Before:"); 
      printTable(table); 

      // adding a row at index 1, between me and Sean Hannity 
      Console.WriteLine("------------\nAfter:"); 
      DataRow barackRow = getRow(table, 4, "Barack Obama", true); 
      table.Rows.InsertAt(barackRow, 1); 
      printTable(table); 

      Console.Write("Press any key. . ."); 
      Console.ReadKey(true); 
     }   
    } 
} 
2

样品:

  DataTable table = new DataTable(); 
      table.Columns.Add("a", typeof(int)); 

      DataRow r = table.NewRow(); 
      r[0] = 10; 
      table.Rows.Add(r); 

      r = table.NewRow(); 
      r[0] = 12; 
      table.Rows.InsertAt(r, 0);