如何创建自动增量列并使其自动填充

时间:2015-01-05 07:50:42

标签: c# sql-server

这是我的代码:

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。我正在使用上面的代码。但它似乎不起作用。有什么建议吗?

2 个答案:

答案 0 :(得分:0)

试试这个

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);
}

答案 1 :(得分:0)

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

//原始数据表

DataTable origDT;

//创建读者

DataReader dr = origDT.CreatDataReader();

//克隆原始文件

DataTable clonedDT = origDT.Clone();

//添加身份列

clonedDT.Columns.Add(new DataColumn(){AutoIncrement = true});

//从读取器加载克隆,ident col将自动填充值

clonedDT.Load(dr);