如何在 C# 中获取 Ms Access 表的主键

Posted

技术标签:

【中文标题】如何在 C# 中获取 Ms Access 表的主键【英文标题】:How to get the primary key of an Ms Access table in C# 【发布时间】:2009-05-14 11:06:43 【问题描述】:

在给定连接和表名的情况下,我需要构成 Microsoft Access 表的主键的一个或多个字段(只需字段名称即可)。

【问题讨论】:

【参考方案1】:

好的,我想我找到了。它应该适用于所有 oledb 并且是 sth。喜欢:

public static List<string> getKeyNames(String tableName, DbConnection conn)
    
        var returnList = new List<string>();


        DataTable mySchema = (conn as OleDbConnection).
            GetOleDbSchemaTable(OleDbSchemaGuid.Primary_Keys,
                                new Object[] null, null, tableName);


        // following is a lengthy form of the number '3' :-)
        int columnOrdinalForName = mySchema.Columns["COLUMN_NAME"].Ordinal;

        foreach (DataRow r in mySchema.Rows)
        
            returnList.Add(r.ItemArray[columnOrdinalForName].ToString());
        

        return returnList;
    

【讨论】:

你救了我这么多。一个如此有用的解决方案没有我能找到的任何记录用法,这超出了我的理解范围。

以上是关于如何在 C# 中获取 Ms Access 表的主键的主要内容,如果未能解决你的问题,请参考以下文章

conn.GetSchema 查找表的主键 - MsAccess

如何在数据库C#中查找表的主键

如何在ms access数据库c#中插入带有主键的记录

MS Access 主键自动编号变得混乱

我想知道 c# 中 ms access 数据库表列的确切数据类型(dbtype)

在 ms-access 中获取表的外键约束列表?