, изменить на # при чтении данных из файла Excell - PullRequest
1 голос
/ 11 октября 2010

Я использую следующий код для чтения данных Excel в таблицу данных, однако имя столбца POBOX в таблице данных изменилось на P # O # BOX. Может ли кто-нибудь пролить свет на то, почему это происходит?

Dim FileName As String = "C:\abc.xls"
    Dim conn As Data.OleDb.OleDbConnection = Nothing
    Dim dt As New DataTable

    Try
        Try
            Try
                conn = New Data.OleDb.OleDbConnection(String.Format("Provider=Microsoft.Jet.OLEDB.4.0;Data Source={0};Extended Properties=Excel 8.0;", FileName))
                conn.Open()
            Catch exOleDB As System.Data.OleDb.OleDbException
                If exOleDB.ErrorCode <> -2147467259 Then Throw exOleDB
                'try to open an Excel 2007 file
                conn = New Data.OleDb.OleDbConnection(String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=Excel 12.0;", FileName))
                conn.Open()
            End Try
        Catch ex As Exception
            Throw New Exception("Can't read the import file. Try saving the file as an Excel 97-2003 Workbook (.xls). Also check the file permissions and impersonation settings.", ex)
        End Try
        Using selectedCMD As New Data.OleDb.OleDbCommand("select * from [Users$]", conn)
            Using da As New Data.OleDb.OleDbDataAdapter
                da.SelectCommand = selectedCMD
                da.Fill(dt)
            End Using
        End Using
    Finally
        If conn IsNot Nothing Then
            If conn.State <> ConnectionState.Closed Then conn.Close()
            conn.Dispose()
        End If
    End Try
    Return dt

Ответы [ 2 ]

1 голос
/ 11 октября 2010

Периоды "." в P.O.Box недопустимые имена столбцов SQL, поэтому адаптер данных сделал их совместимыми. Вам нужно будет найти причину и что из этого

0 голосов
/ 11 октября 2010

Вам нужно будет вручную обрабатывать заполнение вашего набора данных вместо использования fill (). Вы можете использовать OpenSchema для извлечения имен таблиц и столбцов в Excel, чтобы создать оператор SQL, который квалифицирует все имена объектов.

Подробнее здесь

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...