2012-04-27 10 views
3

Excelファイルをクエリしてデータレコードを取得し、監視ツールで表示しています。事は、私は、次のリクエストで、そのIDを持つレコードを選択しようとしていたときに、クエリを実行するとき、それはエラーをスローしていることである:C#でExcelファイルをクエリし、数値セルを発行します。

タイプであることを私に言っ

をExecuteCommandTextErrorHandlingクエリとターゲットセルは互換性がありません。

私の要求は、そのセルタイプが標準でデフォルトのタイプであるので、id列の缶がちょうど数字以上のものを含んでいる

SELECT TOP 20 [Fields...] 
FROM [RECORD$] 
WHERE (([id] = '1')) 

のように見えます。

私の質問はです。以前にそのタイプを知らずにレコードを取得するにはどうすればよいですか?

カラムタイプを強制する必要がありますか?例外をキャッチして引用符を使わずに再試行する必要がありますか?ここで

は、Excelファイルを照会するために使用されるコードと私の接続文字列事前に

public static DataTable queryXlsFile(String query, OleDbConnection dbConnection) 
{ 
     OleDbDataAdapter dbCommand = new OleDbDataAdapter(query, dbConnection); 
     DataTable dt = new DataTable(); 
     dbCommand.Fill(dt); 
     return dt; 
    } 

Provider=Microsoft.ACE.OLEDB.12.0; data source=C:\\test\\321.xls; Extended Properties=\"Excel 8.0;HDR=Yes;\"; 

おかげです。

答えて

1

IMEX = 1を追加しようとすると、

HDR =はい; IMEX = 1"

+0

完了しましたが、レコードシートが数字だけのIDを持っていれば、まだ例外がスローされています。今は引用符で試しています。例外があれば、再試行します。 – Oflocet

1

あなたが行の多くを持っている場合、タイプは他のほとんどのタイプ、タイプである最初の行に依存して、1答の型は文字列です。

+0

+1。 – Oflocet

関連する問題