Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
OleDbDataReader,C#-OleDbDataReader可以从excel文件检索的最大行数限制是多少?_C#_Excel_Oledbdatareader - Fatal编程技术网

OleDbDataReader,C#-OleDbDataReader可以从excel文件检索的最大行数限制是多少?

OleDbDataReader,C#-OleDbDataReader可以从excel文件检索的最大行数限制是多少?,c#,excel,oledbdatareader,C#,Excel,Oledbdatareader,我正在使用OleDbDataReader(C#)从excel文件中读取93081行,但它似乎没有读取所有行。它只读取93081行中的27545行。当我读取另一个只有15941行的文件时,它不会造成任何问题,并且会检索所有行 我已经在连接字符串中包含了IMEX=1,正如许多人在网上提到的,尽管整个excel文件中的数据类型都是相同的 OleDbDataReader可以从excel文件中读取的最大行数限制是多少 编辑:添加代码 var loc = "C:\\Users\\random\\Deskto

我正在使用OleDbDataReader(C#)从excel文件中读取93081行,但它似乎没有读取所有行。它只读取93081行中的27545行。当我读取另一个只有15941行的文件时,它不会造成任何问题,并且会检索所有行

我已经在连接字符串中包含了IMEX=1,正如许多人在网上提到的,尽管整个excel文件中的数据类型都是相同的

OleDbDataReader可以从excel文件中读取的最大行数限制是多少

编辑:添加代码

var loc = "C:\\Users\\random\\Desktop\\Test.xlsx";
var myConnection = new OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;Data Source=\""+ loc + "\";Extended Properties=\"Excel 8.0;IMEX=1\";");
var myCommand = new OleDbCommand();   

myConnection.Open();
myCommand.Connection = myConnection;
var sql = "Select * from [Sheet2$]";
myCommand.CommandText = sql;
var dataReader = myCommand.ExecuteReader();
var insert = "";
var result = "";

DataTable table = new DataTable();
table.Columns.Add("ID", typeof(int));
table.Columns.Add("Request", typeof(string));
table.Columns.Add("Decoded_Request", typeof(string));

while (dataReader.Read()){
      insert = dataReader["Request"].ToString();
      result = HttpUtility.UrlDecode(insert);
      table.Rows.Add(i, insert, result);
      i++;
      Console.WriteLine(i);
}

谢谢大家!

对于那些进来寻找答案的人……我认为你们使用的是旧的excel驱动程序。 Excel限制了65536行

在这个例子中
第27546行=93081-65536

能否将文件加载到数据表中,并查看它是否加载了所有数据。。?您必须编写自己的解析器或使用第三方工具来完成这项工作。此外,在线上有大量关于将excel导出到datatable的示例,27545行听起来好像您做错了什么。您可以显示任何现有代码吗?您可以发布您正在阅读的代码吗?一个DBDataReader一次读取一行数据,因此理论上没有任何限制。但是,如果在读取循环期间出现某种异常…..insert=dataReader[“Request”].ToString();如果请求列中存在空值,此行可能会导致问题。如果此列中有空单元格,请检查该文件。您对此代码有什么想法吗?很抱歉,在文件结束之前,我找不到任何可以停止此循环的方法。您可以尝试在循环内设置条件断点。将其设置为在i==27544时停止代码执行,然后逐步进行,直到您能够理解是什么将代码踢出循环。我知道这是一个老问题,但27545正好是93081-65536。如果您获取行数并尝试将其转换为16位整数,那么这就是您的答案。如果您理解二进制数学,那么93081&0xFFFF=27545。我认为旧版本的excel(您在连接字符串中指定的excel 8.0肯定很旧)只支持65535行,所以看起来您已经超过了这个数字。