2009-02-11 4 views
0

Я пытаюсь прочитать данные из файлов excel с использованием datatable.Как найти имена таблиц из схемы через Ado.net без использования хранимой процедуры и т. Д.?

Команда «select * from [Sheet1 $]» отлично работает, но если файл Excel имеет лист с другим именем, он дает ошибку.

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

ответ

0

Следующая функция возвращает имя таблицы в данной позиции (например, 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