在VB.NET中用ADO(不是ADO.NET)获取数据库中的所有非系统表名

'假设mCnnDB是个已打开某一数据库的ADO.Connection
'获取数据库中的所有表名关键是用到ADO.Connection的OpenSchema方法
'该方法返回一个只读的数据集,包括系统表和用户表.
'因此,需要一个集合来保存其中的用户表
    Public Function GetAllTableName() As System.Collections.ArrayList
        Dim t As New System.Collections.ArrayList()
        Dim rs As New ADODB.Recordset()
        rs = mCnnDB.OpenSchema(ADODB.SchemaEnum.adSchemaTables)
        Do While Not rs.EOF
            If rs("TABLE_TYPE").Value = "TABLE" Then
                t.Add(rs("TABLE_NAME").Value)
            End If
            rs.MoveNext()
            If rs.EOF Then Exit Do
        Loop
        rs.Close()
        rs = Nothing
        Return t
    End Function