是否有一个查询将返回Microsoft Access表中的所有列名称?

问题描述:

我有一个Microsoft Access数据库,我使用VB.NET连接到Jet数据库引擎。我想以编程方式获取特定表的所有列名称。是否有一个查询将返回Microsoft Access表中的所有列名称?

我想做到这一点MS SQL语句相当于:

SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = 'TableName' 

这是可能的访问?如果没有,我有什么选择获取列名?

我找到了一种使用.NET Connection类的GetSchema方法来做到这一点的方法。

我写了一个方法,它返回特定表的列名。

Private Function GetColumnNamesInTable(ByVal connectionString As String, ByVal tableName As String) As List(Of String) 
    Dim connection As OleDbConnection = New OleDbConnection(connectionString) 
    Dim restrictions As String() = New String() {Nothing, Nothing, tableName, Nothing} 
    connection.Open() 
    Dim dataTable As DataTable = connection.GetSchema("Columns", restrictions) 
    connection.Close() 
    Dim returnList As List(Of String) = New List(Of String) 
    For Each dataRow As DataRow In dataTable.Rows 
     returnList.Add(dataRow("Column_Name")) 
    Next 
    Return returnList 
End Function 
+0

很快。 – JeffO 2010-08-17 14:08:03

+0

这是我的最高优先。在我写完问题后,我继续尝试寻找解决方案。我希望有人会回应我可以使用的查询,这样我就不必这样做。 – Jeremy 2010-08-17 14:27:20

+1

为什么您的原始问题中没有提到.NET?它会帮助很多人找出你的问题的最佳答案。你应该真的编辑你的问题来解决这个问题,因为如果整个背景清晰的话,其他人将会得到更多的帮助。 – 2010-08-17 22:27:14