2

C# を使用して Excel をインポートしています。ただし、CustomerOrderNR 列には次の種類の値が含まれています。

20283
20213
20625
50749-50
30687
31975
82253

しかし、これらのコードを実行すると:

    string QTam = @"SELECT Date, [Serial Number], [Status Code], Description, CustomerOrderNR FROM [Sheet1$]";

    DataSet ds = new DataSet();
    OleDbDataAdapter cmd = new OleDbDataAdapter(QTam, strConn);
    cmd.Fill(ds, "orders");

System.Double データ型で CustomerOrderNR 列を返しています。データテーブルの列の型を変更したいのですが、次のような例外が返されます。

Cannot change DataType of a column once it has data.

SQL ステートメントで、Column の DataType を Double から String に変更できませんか?

4

4 に答える 4

2

接続文字列を見てください。混合列をテキストとして処理することをExcelが認識できるように、ISAM=1を含める必要がある場合があります。

于 2011-03-17T17:34:21.670 に答える
2

SQL でデータ型を強制する方法はわかりませんが、後でデータセット スキーマを複製してデータセットでデータ型を変更し、ImportRow でデータをコピーできます。

ただし、文字列として扱いたい場合は、Excel のデータ型を文字列に変更する必要があります。

于 2011-03-17T16:04:16.523 に答える
2

Excel でデータ型が混在していると、常に問題が発生します。

OleDB と混合 Excel データ型に役立つ可能性のある回答
: 欠落データ

ここに別の素晴らしい説明があります

http://munishbansal.wordpress.com/2009/12/15/importing-data-from-excel-having-mixed-data-types-in-a-column-ssis/

于 2011-03-17T16:12:44.723 に答える