2010-08-10 47 views
11

我有12的數據表columns.now我需要刪除除了在「0」位置如何刪除數據表中的列在C#

我可以通過指定的列名單獨刪除所有列。但我不想這樣做,因爲這不是編碼的最佳方式。

還有沒有其他的我能做到這一點

感謝

+0

你是databinding? – PostMan 2010-08-10 01:53:44

+0

可能的重複:https://stackoverflow.com/questions/75123/remove-columns-from-datatable-in-c-sharp – 2017-12-05 13:16:58

+0

可能的重複:https://stackoverflow.com/questions/75123/remove-columns-from -datatable-in-c-sharp – 2017-12-05 13:17:15

回答

19

向後去通過列和刪除每個之一。你必須倒退以避免索引超出範圍例外。

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

感謝Jerod Houghtelling,您的解決方案運行良好 – happysmile 2010-08-10 06:44:40

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

,你可以取下來,從數據表對象的列中的代碼。我的代碼做的是循環遍歷數據表對象,然後逐個刪除列。

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

通過上面的代碼,您可以取下Datatable對象中的列。我的代碼所做的是循環訪問Datatable對象,然後逐個刪除列。 – 2015-02-09 09:56:18

+0

希望它有幫助,如果您有任何進一步的疑問,請隨時與我聯繫。 – 2015-02-09 10:01:09

相關問題