Как найти имена таблиц из схемы через Ado.net без использования хранимых процедур и т. Д.? - PullRequest
0 голосов
/ 11 февраля 2009

Я пытаюсь прочитать данные из файлов Excel, используя datatable.

Команда "select * from [Sheet1 $]" работает нормально, но если в файле excel есть лист с другим именем, выдает ошибку.

Так что теперь мне нужно знать, как я могу найти имена таблиц, доступные в схеме, используя ADO.Net.

1 Ответ

0 голосов
/ 11 февраля 2009

Следующая функция вернет имя таблицы в заданной позиции (например, лист Excel) или вернет пустое значение

Private Function GetTableName(ByVal ConnectionString As String, ByVal TableNumber As Integer) As String
    Dim i As Integer
    Dim dtXlsSchema As DataTable
    Dim myConn As New OleDbConnection
    myConn.ConnectionString = ConnectionString
    myConn.Open()
    dtXlsSchema = myConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, _
                      New Object() {Nothing, Nothing, Nothing, "TABLE"})


    If TableNumber > dtXlsSchema.Rows.Count Then
        Return ""
    Else
        Return dtXlsSchema.Rows(TableNumber - 1).Item("Table_Name").ToString
    End If
End Function
...