首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从OleDbDataAdapter填充DataSet

从OleDbDataAdapter填充DataSet
EN

Stack Overflow用户
提问于 2013-04-01 06:13:57
回答 1查看 6.5K关注 0票数 2

我正在使用OleDbDataAdapter读取数据集中的Excel工作表的内容。Excel工作表由20391行组成,数据集在本地计算机上运行时读取总行数,但在IIS7.5服务器上运行代码时只读取前12463行!!

我的连接字符串:

代码语言:javascript
复制
switch (strFileType.Trim())
       {
           case ".xls":
               connString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + strNewPath +
                            ";Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=2\"";
               break;
           case ".xlsx":
               connString = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + strNewPath +
                            ";Extended Properties=\"Excel 12.0;HDR=Yes;IMEX=2\"";
               break;
       }

var query = "SELECT * FROM [" + excelSheets[0] + "]";

//Create the connection object
var conn = new OleDbConnection(connString);
//Open connection
if (conn.State == ConnectionState.Closed) conn.Open();
//Create the command object
var cmd = new OleDbCommand(query, conn);
var da = new OleDbDataAdapter(cmd);
var ds = new DataSet();
da.Fill(ds);

有没有办法在多个数据表中划分da.Fill结果?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-04-02 19:56:29

我按照@dash的建议做了,并使用了Excel Data Reader,它工作正常。

以下是代码

代码语言:javascript
复制
        FileStream stream = File.Open(strNewPath , FileMode.Open, FileAccess.Read);            
        //1. Reading from a binary Excel file ('97-2003 format; *.xls)
        //IExcelDataReader excelReader = ExcelReaderFactory.CreateBinaryReader(stream);
        //...
        //2. Reading from a OpenXml Excel file (2007 format; *.xlsx)
        IExcelDataReader excelReader = ExcelReaderFactory.CreateOpenXmlReader(stream);;                      
        excelReader.IsFirstRowAsColumnNames = true;
        DataSet result = excelReader.AsDataSet();
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15735184

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档