• 首页
  • 栏目
  • ERP
  • 导入Excel表里的数据时产生【定义了过多字段】,但有时又是成功的

导入Excel表里的数据时产生【定义了过多字段】,但有时又是成功的

  • 2021-07-28
  • Admin
  1. filePath = @"d:\users.xls";
  2. string strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
  3. //选择Excel文件中的一个sheet,比如叫“EmployeeInfo”:
  4. string strSheetName = "sheet1";
  5. string strExcel = "select * from [" + strSheetName + "$] ";
  6. //打开连接,读取Excel文件中数据到Dataset中,然后关闭连接:
  7. OleDbConnection conn = new OleDbConnection(strConn);
  8. conn.Open();
  9. OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, conn);
  10. DataSet ds = new DataSet();
  11. adapter.Fill(ds, "data");
  12. conn.Close();
  13. 以上代码有时能执行成功,有时又会报:
  14. 定义了过多字段。
  15. 说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
  16. 异常详细信息: System.Data.OleDb.OleDbException: 定义了过多字段。
  17. 源错误:
  18. 180: OleDbDataAdapter adapter = new OleDbDataAdapter(strExcel, conn);
  19. 181: DataSet ds = new DataSet();
  20. 182: adapter.Fill(ds, "data");
  21. 183: conn.Close();
  22. 184: SqlCommand command = null;
  23. 】 分析:一般来说是sheet表有问题,我刚遇到过这种问题,但不知道具体原因   

   表从某列到某列可能有问题,一般是最后的几列,你没用的列全选,然后删除,注意一般界面上没有什

   么变化,但我们已经删除没用的多出来的列删除了。保存Excel。一般就可

   以了。

原文:https://blog.csdn.net/u014712365/article/details/119179383

联系站长

QQ:769220720