2010-08-10 15 views
11

mam DataTable z 12 columns.now muszę usunąć wszystkie kolumny z wyjątkiem pozycji „0”Jak usunąć kolumnę DataTable w C#

mogę usunąć indywidualnie poprzez podanie nazwy kolumn. ale nie chcę tego robić. Nie jest to najlepszy sposób kodowania.

jest jakiś inny mogę zrobić

dzięki

+0

Czy tworzysz bazę danych? – PostMan

+0

możliwy duplikat: https://stackoverflow.com/questions/75123/remove-columns-from-datatable-in-c-sharp –

+0

możliwy duplikat: https://stackoverflow.com/questions/75123/remove-columns-from -datatable-in-c-sharp –

Odpowiedz

19

Idź do tyłu kolumn i usunąć każdy z nich. Musisz cofnąć się, aby uniknąć wyjątku poza zakresem indeksu.

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

VB.Net Lovers:

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

dzięki Jerod Houghtelling, twoje rozwiązanie działało świetnie – happysmile

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

Kod można wziąć w dół kolumny z obiektu tabeli danych. To, co robi mój kod, przełączy się przez obiekty tabeli danych, a następnie usunie kolumny jeden po drugim.

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

Za pomocą powyższego kodu możesz usunąć kolumny z obiektu Datatable. To, co zrobi mój kod, przełączy się przez obiekty Datatable, a następnie usunie kolumny jeden po drugim. –

+0

mam nadzieję, że pomoże, jeśli masz dalsze pytania, skontaktuj się ze mną. –