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

好吧,我相信您无法通过限制rows来解决字段过多的问题。

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

TOP 100 FROM 

是语法无效。如果要限制字段,则需要像这样显式使用列名

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

一般来说,我建议永远不要使用 select *,但总是准确地使用您需要的列。

于 2011-11-09T12:43:11.890 回答