我有一个12列的数据表。现在我需要删除除“0”位置以外的所有列
我可以通过指定列名来单独删除。但我不想这样做。因为这不是编码的最佳方式。
还有其他我能做到的吗
感谢
答案 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);
}
}
}