是否有一个查询会返回 Microsoft Access 表中的所有列名?
Posted
技术标签:
【中文标题】是否有一个查询会返回 Microsoft Access 表中的所有列名?【英文标题】:Is there a query that will return all of the column names in a Microsoft Access table? 【发布时间】:2010-08-17 13:14:15 【问题描述】:我有一个 Microsoft Access 数据库,我使用 VB.NET 通过 Jet 数据库引擎连接到该数据库。我想以编程方式获取特定表的所有列名。
我想做这个 MS SQL 语句的等价物:
SELECT COLUMN_NAME FROM INFORMATION_SCHEMA.Columns WHERE TABLE_NAME = 'TableName'
这在 Access 中可行吗?如果没有,我有哪些获取列名的选项?
【问题讨论】:
【参考方案1】:我找到了一种使用 .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
【讨论】:
这是我的首要任务。写完问题后,我继续尝试寻找解决方案。我希望有人会回复我可以使用的查询,这样我就不必这样做了。 为什么在您原来的问题中没有提到 .NET?它会帮助很多人找出你问题的最佳答案。你真的应该编辑你的问题来解决这个问题,因为如果完整的上下文是清楚的,其他人会得到更多的帮助。 我已经搜索了超过 2 年的查询来执行此操作,但似乎没有。我最终确定了这个程序并且它有效。此外,GetSchema
允许您检索有关任何 Access 数据库的大量信息。
@Alex:感谢您的意见。 GetSchema 看起来确实很强大。以上是关于是否有一个查询会返回 Microsoft Access 表中的所有列名?的主要内容,如果未能解决你的问题,请参考以下文章
是否可以在 Microsoft SQL Server 上为 SQL 查询设置超时?
Microsoft SQL 查询 - 从第二个表返回最后一条记录
Microsoft Access 中的选择查询在另一个表中查找返回错误结果的记录
Microsoft Access 2016 查询为链接表中的空日期返回 1/1/1800