Excel ページを読み込もうとしていますが、次のエラーが表示されます。
入力文字列の形式が正しくありません。PHONE_NUM 列に <555-555-5555> を格納できませんでした。予想される型は Double です。
oledb コマンドは、列が double 型であることを期待しているようです (ただし、実際には、これは電話番号の文字列です)。コマンドが列の最初のいくつかの項目のように見え、それに基づいてタイプを決定するため、これが発生することをどこかで読んだと思います。すべての値を常に文字列として読み取る方法はありますか?
これは私が使用しているコードです:
Dim connection As OleDb.OleDbConnection
Dim command As OleDb.OleDbCommand
Dim adapter As New OleDb.OleDbDataAdapter
Dim connString As String = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + myFile + ";Extended Properties=Excel 12.0;"
Dim pgOne As String = "Page1$"
Dim pgTwo As String = "Page2$"
Dim selectOne As String = "SELECT * FROM [" & pgOne & "] WHERE COL1<>''"
Dim selectTwo As String = "SELECT * FROM [" & pgTwo & "]"
connection = New OleDb.OleDbConnection(connString)
Try
If connection.State = ConnectionState.Open Then
Else
connection.Open()
End If
command = New OleDb.OleDbCommand(selectOne, connection)
adapter.SelectCommand = command
adapter.Fill(ds, "Table1")
adapter.SelectCommand.CommandText = selectTwo
adapter.Fill(ds, "Table2")
Catch ex As OleDb.OleDbException
Finally
adapter.Dispose()
If (Not command Is Nothing) Then
command.Dispose()
End If
connection.Close()
End Try