VB.NET - 从mdb中获取所有列名的清晰列表的任何方法? (访问数据库)

问题描述:

我有一个Access数据库中的表,我正在加载到一个VB.NET程序,我想要一种方法来获取每个列的名称到一个字符串列表。谷歌搜索表明,使用SQL数据库要容易得多,但在Access中这样做要困难得多。VB.NET - 从mdb中获取所有列名的清晰列表的任何方法? (访问数据库)

我遇到了这个问题Is there a query that will return all of the column names in a Microsoft Access table?这提供了一种方式来做到这一点,但是当我尝试的代码,它只是填充我的名单和一帮“System.Collections.Generic.List'1 [System.String]”

这是我改编的代码。任何修复建议或更好的方法来做到这一点?

Public Function GetColumns(ByRef database As String, ByRef table_name As String, ByRef columns As List(Of String)) As Integer 
Dim com As OleDbConnection 
     Try 
      com = New OleDbConnection(database) 
      com.Open() 
     Catch ex As Exception 
      Return 1 
     End Try 

     Dim restrictions As String() = New String() {Nothing, Nothing, table_name, Nothing} 
     Dim dt As DataTable = com.GetSchema("Columns", restrictions) 
     com.Close() 

     For Each DR As DataRow In dt.Rows 
      columns.Add(DR("Column_Name").ToString) 
     Next 

     For Each holding As String In columns 
      Console.WriteLine(columns) 
     Next 
End Function 

编辑:哈,我讨厌当我做出愚蠢的错误在其他地方的功能,这让我想到了功能的肉不工作的写入。我的每个循环都不打印正确的字符串。应Console.WriteLine(控股)

+0

jejeje我正在看你的代码5分钟,也没有看到它:D – Jonathan 2011-06-16 14:27:27

Console.WriteLine(columns) 

变化:

Console.WriteLine(holding) 

然后可能踢自己的头不察觉它= d ;-)

+1

Yeeaaa踢开始了。请相信我。我总是认为这是我不熟悉的代码,我做错了,所以我不会在错误狩猎时查看其他的东西 – cost 2011-06-16 14:32:57

+1

不用担心,我们会有这些日子;-) – Smudge202 2011-06-16 14:41:20

尝试改变

For Each holding As String In columns 
     Console.WriteLine(columns) 
    Next 

For Each holding As String In columns 
     Console.WriteLine(holding) 
    Next