最好的方法是在现有数据表中添加带有顺序编号的新列

Ana*_*nth 3 .net c# datatable datacolumn

我有一个非空的数据表.向其添加另一列的最佳方法是从1开始的顺序编号.

我尝试了以下代码.但没有奏效.

DataColumn dc = new DataColumn("Col1");
dc.AutoIncrement = true;
dc.AutoIncrementSeed = 1;
dc.AutoIncrementStep = 1;       
dc.DataType = typeof(Int32);
dt.Columns.Add(dc);
Run Code Online (Sandbox Code Playgroud)

在这种情况下设置任何表达式会有帮助吗

提前致谢

Den*_*vin 7

我认为你可以通过使用第二个"辅助"数据表来实现这一点,该数据表只包含一个自动增量字段,然后用现有数据填充/合并它,如下所示:

DataTable dtIncremented  = new DataTable(dt.TableName);
DataColumn dc            = new DataColumn("Col1");
dc.AutoIncrement         = true;
dc.AutoIncrementSeed     = 1;
dc.AutoIncrementStep     = 1;
dc.DataType              = typeof(Int32);    
dtIncremented.Columns.Add(dc);

dtIncremented.BeginLoadData();

DataTableReader dtReader = new DataTableReader(dt);
dtIncremented.Load(dtReader);

dtIncremented.EndLoadData();
Run Code Online (Sandbox Code Playgroud)

然后你只需返回dtIncremented表而不是原来的dt.不是优雅的解决方案,但应该工作.