如何在 C# 中更改数据表列的顺序。
例子:
我创建的 sql 表类型顺序是 Qty、Unit、Id,但在程序中 DataTable 顺序是 Id、Qty、Unit。在后面的代码中,我直接将 DataTable 传递给 sql 表类型,因此表顺序不同。
DataTable columns are: `Id,Qty,Unit.` I want this to be: `Qty,Unit,Id`
请帮忙
最佳答案
尝试使用 DataColumn.SetOrdinal方法。例如:
dataTable.Columns["Qty"].SetOrdinal(0);
dataTable.Columns["Unit"].SetOrdinal(1);
更新:这个答案受到的关注比我预期的要多得多。为了避免混淆并使其更易于使用,我决定为 DataTable 中的列排序创建一个扩展方法:
扩展方法:
public static class DataTableExtensions
{
public static void SetColumnsOrder(this DataTable table, params String[] columnNames)
{
int columnIndex = 0;
foreach(var columnName in columnNames)
{
table.Columns[columnName].SetOrdinal(columnIndex);
columnIndex++;
}
}
}
用法:
table.SetColumnsOrder("Qty", "Unit", "Id");
或
table.SetColumnsOrder(new string[]{"Qty", "Unit", "Id"});
关于c# - 如何更改 DataTable 列的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3757997/