0

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
4

2 に答える 2

0

前述のように、これを修正できなかったため、スキーマを手動で作成し、バインドされたデータをフォーマットすることになりました。

于 2013-07-25T15:35:51.757 に答える