C# 读取EXCEL数据丢失,6万行数据只能读取13866行


问题描述

这两天使用C#开发一个通过EXCEL将数据导入数据库的程序时遇到一个问题,EXCEL里面有6万行+的数据,使用开发的电脑导入是没有问题,从EXCEL里面读取出来的数据也是6万行。但是同样的程序放到服务器上,每次只能从EXCEL中读取出13866行。
上网百度,也一直没有找到问题点。连这个问题相关的提问也只有一个,还没有解决的。

这个dt出来的行数就只有13866

  string strExcel = "Excel 12.0";
  string strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strFilePath + strFileName + ";Extended Properties=\"" + strExcel + ";HDR=Yes;IMEX=1''\" ";
  OleDbConnection conn = new OleDbConnection(strConn);

  string sql = "SELECT * FROM [Sheet0$]";
  OleDbDataAdapter adapter = new OleDbDataAdapter(sql, conn);
  DataSet ds = new DataSet();
  adapter.Fill(ds, "Sheet0");
  DataTable dt = ds.Tables[0];

解决过程

在看了网上说的修改注册表TypeGuessRows的值,IIS里面的【启用32位应用程序】,都不行

解决方案

后来仔细对比了两台电脑的注册表和IIS的设置,发现了两个电脑的差异点,调整之后就解决了这个问题。
应用程序池里面的标识不能选择ApplicationPoolIdentity,将其改成LocalSystem就可以了。

这个

总结

因为自己在网上找这个问题的时候找不到解决方案,为了这个问题,从查程序到对照注册表到对照IIS,前后一共花费了5个多小时去解决这个问题。所以想这记录下来,也许有人遇到同样的问题可以能给到帮助。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值