1

DataSetに行を追加したいのですが、特定の数の行のみを追加します(「定義されたフィールドが多すぎます」という例外を回避するため)。これは私がこれまでに試したことです:

OleDbCommand command = new OleDbCommand(@"SELECT TOP 100 FROM [" + SheetName + "]", connection);

例外:SELECTステートメントに、スペルが間違っているか欠落している予約語または引数名が含まれているか、句読点が正しくありません。

OleDbCommand command = new OleDbCommand(@"SELECT * FROM [" + SheetName + "] LIMIT 100", connection);

例外:FROM句の構文エラー。

別のサイトから入手したものも試してみました

OleDbCommand command = new OleDbCommand(@"SELECT TOP 100 * FROM [" + SheetName + "]", connection);

例外:定義されているフィールドが多すぎます。

他に何を試すべきかわかりません、何か提案はありますか?

4

2 に答える 2

3

Fill()メソッドが取得する行数を指定できます。これがMSDNからの署名です:

public int Fill(
    int startRecord,
    int maxRecords,
    params DataTable[] dataTables
)

http://msdn.microsoft.com/en-us/library/0z5wy74x.aspx

于 2011-11-09T12:42:47.773 に答える
2

さて、行を制限することによって、フィールドが多すぎるという問題を解決することはできないと思います。

ただし、フィールドを制限することはできます。あなたの最初の試みの問題

TOP 100 FROM 

構文が無効であるということです。フィールドを制限する場合は、次のような列名を明示的に使用する必要があります

SELECT TOP 100 ColumnName1, ColumnName2, ColumnName3 from ....

一般に、select *は使用しないことをお勧めしますが、必要な列は常に正確に使用してください。

于 2011-11-09T12:43:11.890 に答える