2009-06-26 74 views
-1

我使用OleDb與Access數據庫進行交互,並試圖找出如何獲取每個表的主鍵,但以這樣的方式,他們是與表相關聯。換句話說,我不只是想要一個主鍵列名的平坦列表 - 我想能夠確定它們屬於哪個表。C#/ Access從Access 2003獲取主鍵

任何想法如何做到這一點?我使用GetSchema()方法來獲取表的表,但該表的信息似乎並不包含主鍵(或任何其他索引,就此而言)。

回答

1

好的 - 做了一些輸出列名並更好地理解了模式表的相關性。

爲此,請將字符串「索引」傳遞給GetSchema()方法。索引表中的每條記錄都包含表名以及索引是否爲主鍵。

0

我想你的意思是說,對於模式中的每個FOREIGN KEY,你都希望發現被引用表的名字。從快速谷歌看來這是不可能的:

Microsoft Connect: DbConnection.GetSchema: no ways to get foreign keys' columns

...這很奇怪,因爲與ADO經典的(COM,不.NET)OpenSchema方法就可以了。

+0

我意識到「關聯」這個詞會增加混淆,但我確實在討論實際上是主鍵的表中的主鍵。我想要一個數據庫中的主鍵列表,但不是「平面」列表,它只是這些字段的列表。我需要知道主鍵屬於哪個表 - 不僅僅是它的名字或其他屬性。 「索引」模式表做了訣竅。但是,謝謝你試圖回答。 – 2009-06-28 13:21:38