在Access 2010/2013中获取自动编号列索引

时间:2016-09-19 14:44:36

标签: c# ms-access-2010 oledb

(首先抱歉我的英文):

我想暂时将auto-number列更改为int64数据类型,以从其他数据库导入记录。导入记录后,我想将其更改回auto-number

我的问题: 我尝试使用table.Columns[i].AutoIncrement属性检查此列是否为auto-number并获取其索引以便我可以更改其数据类型,但此属性对我不起作用,它返回false为所有专栏。

我使用2010/2013 Access数据库。

所以我想知道如何获取auto-number列的索引?

1 个答案:

答案 0 :(得分:1)

您可以使用此方法

// Bogus query, we don't want any record, so add a always false condition
OleDbCommand cmd = new OleDbCommand("SELECT * FROM aTable where 1=2", con);
OleDbDataAdapter da = new OleDbDataAdapter(cmd);
DataTable test = new DataTable();
da.FillSchema(test, SchemaType.Source);
for(int x = 0; x < test.Columns.Count; x++)
{
    DataColumn dc = test.Columns[x];
    Console.WriteLine("ColName = " + dc.ColumnName + 
                      ", at index " + x +
                      " IsAutoIncrement:" + dc.AutoIncrement);
}