如何在 C# 中更改数据表列顺序。
Example:
我创建的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 http://msdn.microsoft.com/en-us/library/system.data.datacolumn.setordinal.aspx方法。例如:
dataTable.Columns["Qty"].SetOrdinal(0);
dataTable.Columns["Unit"].SetOrdinal(1);
UPDATE:这个答案受到的关注比我预想的要多得多。为了避免混淆并使其更易于使用,我决定为 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++;
}
}
}
Usage:
table.SetColumnsOrder("Qty", "Unit", "Id");
or
table.SetColumnsOrder(new string[]{"Qty", "Unit", "Id"});
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)