2011-06-16 43 views
0

我有一個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

回答

2
Console.WriteLine(columns) 

變化:

Console.WriteLine(holding) 

然後可能踢自己的頭不察覺它= d ;-)

+1

Yeeaaa踢開始了。請相信我。我總是認爲這是我不熟悉的代碼,我做錯了,所以我不會在錯誤狩獵時查看其他的東西 – cost 2011-06-16 14:32:57

+1

不用擔心,我們會有這些日子;-) – Smudge202 2011-06-16 14:41:20

1

嘗試改變

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

For Each holding As String In columns 
     Console.WriteLine(holding) 
    Next 
相關問題