我想在数据集中添加行,但只有特定数量的行(为了避免"定义的字段太多"异常)。这是我到目前为止所尝试的:
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);
异常:定义了太多字段。
我不知道还可以尝试什么,有什么建议吗?
您可以指定希望Fill()
方法检索多少行。以下是来自MSDN的签名:
public int Fill(
int startRecord,
int maxRecords,
params DataTable[] dataTables
)
http://msdn.microsoft.com/en-us/library/0z5wy74x.aspx 嗯,我相信你不能通过限制行来解决太多字段的问题。
但是限制字段是可以做到的。第一次尝试
的问题TOP 100 FROM
表示语法无效。如果希望限制字段,则需要显式地使用如下的列名称
SELECT TOP 100 ColumnName1, ColumnName2, ColumnName3 from ....
一般来说,我建议永远不要使用select *,但总是精确地使用您需要的列。