问题描述
|
我在Access数据库中有一个表,该表正在加载到VB.NET程序中,并且我想要一种将每个列的名称获取到字符串列表中的方法。 Googling已表明,使用sql数据库要容易得多,但是在Access中这样做要困难得多。
我碰到了这个问题是否存在一个查询,该查询将返回Microsoft Access表中的所有列名?这提供了一种方法,但是当我尝试代码时,它只是用一串\“ 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(holding)
解决方法
Console.WriteLine(columns)
改成:
Console.WriteLine(holding)
然后可能会踢自己的头部,以免发现= D ;-)
, 尝试改变
For Each holding As String In columns
Console.WriteLine(columns)
Next
至
For Each holding As String In columns
Console.WriteLine(holding)
Next