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