如何创建一个自动递增列并自动填充

How to create an auto increment column and have it auto filled

这是我的代码:

private void AddAutoIncrementColumn(DataTable dt)
{
    DataColumn column = new DataColumn();
    column.DataType = System.Type.GetType("System.Int32");
    column.AutoIncrement = true;
    column.AutoIncrementSeed = 0;
    column.AutoIncrementStep = 1;


    dt.Columns.Add(column);
}

我有一个现有的 DataTable 并且想要创建一个自动递增的列。也就是说,当我创建列时,我希望它自动填充值 0......x。我正在使用上面的代码。但这似乎不起作用。有什么建议吗?

试试这个

private void AddAutoIncrementColumn()
{
    DataColumn column = new DataColumn();
    column.DataType = System.Type.GetType("System.Int32");
    column.AutoIncrement = true;
    column.AutoIncrementSeed = 0;
    column.AutoIncrementStep = 1;

    // Add the column to a new DataTable.
    DataTable table = new DataTable("table");
    table.Columns.Add(column);
}

Datatable 上有一个名为 CreateDataReader 的方法。因此,克隆您的原始 datatable,添加标识列,从原始 table 创建一个 datareader,然后使用数据 reader 加载克隆的 table。这将在克隆的 table 的身份列中生成数字,然后丢弃原始 table 并使用克隆,例如

// original data table
DataTable origDT;

// create a reader
DataReader dr = origDT.CreatDataReader();

//clone original
DataTable clonedDT = origDT.Clone();

//add identity column
clonedDT.Columns.Add(new DataColumn(){AutoIncrement=true});

//load clone from reader, identity col will auto-populate with values
clonedDT.Load(dr);