【问题标题】:Force new autoincrement column into column 0 after DataTable is Loaded加载 DataTable 后强制将新的自动增量列放入第 0 列
【发布时间】:2021-08-29 07:52:45
【问题描述】:

我需要将我自己的隐藏自动增量添加到 DataTable 中,但在从 .accdb 文件加载 DataTable 之后。隐藏新列没有问题,但是否可以在位置 0 插入列?我不能在加载数据后将新的自动增量列放在最右边,因为它会妨碍,因为它会导致在运行时添加其他列之前出现间隙。列索引>0 的每个数据列都必须与数据全等,不会因为隐藏的自增列而出现间隙。

我知道如何使用列名从 DataView 创建表,但不确定这是否是我想要的。 DataView 中的新 DataTable 会是完整的独立 DataTable 吗?

【问题讨论】:

  • 您是否已经将数据库表加载到 .Net DataTable 对象中? -- 您可以添加一个新列并分配您喜欢的任何显示索引/名称。新列可以自动递增,具有您想要的任何种子和递增值。它也可以是 PK,如果表还没有并且已加载它。你发现实施它有什么问题?你有任何你尝试过的代码吗? -- 不确定 DataView 的用途。

标签: c# vb.net datatable auto-increment


【解决方案1】:

要在加载数据后为任何列设置索引值,请使用DataColumn.SetOrdinal 方法。

假设加载的数据包含“ID”(主键)、“Col 1”、“Col 2”、“Col 3”列。

接下来,将您自己的自动增量唯一列添加为“myID”,然后使用以下语法:

dataTable.Columns["ID"].SetOrdinal(1);
dataTable.Columns["Col 1"].SetOrdinal(2); 
dataTable.Columns["Col 2"].SetOrdinal(3);
dataTable.Columns["Col 3"].SetOrdinal(4); 
dataTable.Columns["myID"].SetOrdinal(0); 

这会将新添加的列的索引设置为 0,并将其余列上移 1。

【讨论】:

  • 之前数据已经加载,如果你想自动增量功能自动应用。
猜你喜欢
  • 2011-08-23
  • 1970-01-01
  • 2011-01-02
  • 2019-01-18
  • 2013-04-20
  • 2015-12-14
  • 1970-01-01
  • 2019-05-16
  • 2018-02-05
相关资源
最近更新 更多