【问题标题】:How to create an auto increment column and have it auto filled如何创建自动增量列并自动填充
【发布时间】:2015-01-05 07:50:42
【问题描述】:

这是我的代码:

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

【问题讨论】:

标签: c# sql-server


【解决方案1】:

试试这个

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

【讨论】:

  • 这不能回答我的问题。我有一个 EXISTING 数据表,我想在其中添加一个自动递增的列。
  • 请检查我在 cmets 中提供的链接。希望对你有帮助 谢谢
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2022-06-15
    • 2013-07-27
    • 1970-01-01
    • 1970-01-01
    • 2015-01-31
    • 2011-03-08
    • 1970-01-01
    • 1970-01-01
    • 2023-03-15
    相关资源
    最近更新 更多