如何删除c#中的datatable列

时间:2010-08-10 01:47:40

标签: c#

我有一个12列的数据表。现在我需要删除除“0”位置以外的所有列

我可以通过指定列名来单独删除。但我不想这样做。因为这不是编码的最佳方式。

还有其他我能做到的吗

感谢

3 个答案:

答案 0 :(得分:20)

向后浏览列并删除每一列。你必须倒退以避免索引超出范围异常。

// index should include zero
for( int index=table.Columns.Count-1; index>=0; index-- )
{
   table.Columns.RemoveAt( index );
}

VB.Net爱好者:

'index should include zero
For index As Integer = table.Columns.Count - 1 To 0 Step -1
    table.Columns.RemoveAt(index)
Next

答案 1 :(得分:5)

while(myDataTable.Columns.Count > 1)
{
    myDataTable.Columns.RemoveAt(myDataTable.Columns.Count - 1);
}

答案 2 :(得分:0)

您可以从Data表对象中删除列的代码。我的代码所做的是它将循环遍历Data表对象,然后逐个删除列。

    String strcolname = "";
    int i=0;
    //Get Data for the reader object
    using (reader = cmd.ExecuteReader())
    {  
    // Load the Data table object
    dataTable.Load(reader);

    //Loop thorough the DataTable object
    for (i=dataTable.Columns.Count-1;i>=0;i--)
    {

    /* 
    To be more precise , specify the column name you dont want to get    deleted, 
    (you can add multilple column names here)*/

    strcolname = dataTable.Columns[i].ColumnName.ToString();

     if (strcolname != "ABCD")
     {
      dataTable.Columns.RemoveAt(i);
     }
    }    
   }