如何更改数据表列顺序 [英] How to change DataTable columns order

查看:36
本文介绍了如何更改数据表列顺序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

如何在 C# 中更改数据表列的顺序.

How to change Datatable columns order in c#.

示例:

我创建的 sql 表类型顺序是 Qty,Unit,Id 但在程序中 DataTable 顺序是 Id,Qty,Unit.在代码Behind中直接将DataTable传递给sql表类型所以表顺序不同.

am created sql table type order is Qty,Unit,Id but in program DataTable order is Id,Qty,Unit. In code Behind am directly pass DataTable to sql table type so the table order is different.

DataTable columns are: `Id,Qty,Unit.`  I want this to be: `Qty,Unit,Id` 

请帮忙

推荐答案

尝试使用 DataColumn.SetOrdinal 方法.例如:

Try to use the DataColumn.SetOrdinal method. For example:

dataTable.Columns["Qty"].SetOrdinal(0);
dataTable.Columns["Unit"].SetOrdinal(1); 

更新:这个答案比我预期的要多得多.为了避免混淆并使其更易于使用,我决定为 DataTable 中的列排序创建一个扩展方法:

UPDATE: This answer received much more attention than I expected. To avoid confusion and make it easier to use I decided to create an extension method for column ordering in 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"});

这篇关于如何更改数据表列顺序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆