Как использовать метод заполнения OleDbDataAdapter, чтобы добавить только определенное количество строк? - PullRequest
1 голос
/ 09 ноября 2011

Я хочу добавить строки в 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);

Исключение: определено слишком много полей.

Понятия не имею, что еще попробовать, есть предложения?

Ответы [ 2 ]

2 голосов
/ 09 ноября 2011

Ну, я думаю, что вы не можете решить проблему слишком большого количества полей , ограничив строки .

Но ограничение полей можно сделать. Проблема с вашей первой попыткой

TOP 100 FROM 

означает, что синтаксис недействителен. Если вы хотите ограничить поля, вам нужно явно использовать имена столбцов, как это

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

В общем, я бы рекомендовал никогда не использовать select *, но всегда именно те столбцы, которые вам нужны.

2 голосов
/ 09 ноября 2011

Вы можете указать, сколько строк вы хотите получить методом Fill().Вот его подпись от MSDN:

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

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

...