如何使用OleDbDataAdapter Fill方法仅添加确定数量的行?

时间:2011-11-09 12:38:17

标签: c# oledbconnection oledbcommand

我想在DataSet中添加行,但只想添加特定数量的行(以避免“Too many fields defined。”异常)。这是我到目前为止所尝试的:

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

异常:SELECT语句包含拼写错误或缺失的保留字或参数名称,或者标点符号不正确。

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

异常:FROM子句中的语法错误。

我也试过这个,我从另一个site

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

例外:定义了太多字段。

我不知道还有什么可以尝试,有什么建议吗?

2 个答案:

答案 0 :(得分:2)

您可以指定要检索Fill()方法的行数。这是来自MSDN的签名:

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

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

答案 1 :(得分:2)

好吧,我相信你不能通过限制来解决那些字段太多的问题。

但是可以限制字段。你第一次尝试的问题

TOP 100 FROM 

是语法无效。如果要限制字段,则需要明确使用类似

的列名
SELECT TOP 100 ColumnName1, ColumnName2, ColumnName3 from ....

一般情况下,我建议永远不要使用select *,但总是精确地使用你需要的列。