【问题标题】:How to remove datatable column in c#如何在c#中删除数据表列
【发布时间】:2010-08-10 01:47:39
【问题描述】:

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

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

还有其他我可以做到的吗

谢谢

【问题讨论】:

标签: c#


【解决方案1】:

向后遍历列并删除每一列。您必须后退以避免索引超出范围异常。

// 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

【讨论】:

    【解决方案2】:
    while(myDataTable.Columns.Count > 1)
    {
        myDataTable.Columns.RemoveAt(myDataTable.Columns.Count - 1);
    }
    

    【讨论】:

      【解决方案3】:

      您可以从数据表对象中删除列的代码。我的代码所做的是它将遍历数据表对象,然后一一删除列。

          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);
           }
          }    
         }
      

      【讨论】:

      • 使用上面的代码,您可以从 Datatable 对象中删除列。我的代码所做的是它将遍历 Datatable 对象,然后一一删除列。
      • 希望对您有所帮助,如果您有任何疑问,请随时与我联系。
      猜你喜欢
      • 2018-04-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-09-29
      • 2015-09-27
      • 2012-07-08
      相关资源
      最近更新 更多