首页 新闻 搜索 专区 学院

系统中无法使用OleDB将Excel中的数据导入到DataSet中了

0
悬赏园豆:10 [待解决问题]

今天一大早,同事反馈,系统中的导数据功能好像不行,

string strConn;
        strConn = "Provider=Microsoft.ACE." +
              "OLEDB.12.0;Extended Properties=\"Excel 12.0;HDR=yes;\";Data Source=" + fileName; //HDR:yes--第一行是表头

        OleDbConnection conn = new OleDbConnection(strConn);
        OleDbDataAdapter myCommand = new OleDbDataAdapter("SELECT * FROM[Sheet1$]", strConn);
        DataSet myDataSet = new DataSet();
        myCommand.Fill(myDataSet);
        return myDataSet;

因为这里是没有try catch的,错误就出现在myCommand.Fill(myDataSet);错误就是E_UNEXPECTED(0x8000FFFF).然后我就用我本地电脑上的VS2008,将连接字符串改成正式库的连接字符串的,然后运行程序,导入同一个Excel档,居然就导入进去了。然后我发现不仅仅这个页面的数据导入不能使用,其他的凡是涉及将Excel导数据的功能都不能使用了,以前从没出现过,今天就全部都不行了,系统其他功能一切正常,我用本地代码也能导入,不知道是不是服务器上出什么问题了?求解答

LgV5的主页 LgV5 | 菜鸟二级 | 园豆:221
提问于:2015-04-23 11:28
< >
分享
所有回答(4)
0

可能Excel文件本身有问题,建议看一下服务器上的Excel文件能不能用Excel打开。

参考:Confusing error E_UNEXPECTED(0x8000FFFF)

dudu | 园豆:38823 (高人七级) | 2015-04-23 11:34

我能够在服务器上面打开普通的Excel文件,其实奇怪的就是,不仅仅是这个Excel档不能导入,还有其他页面的Excel也不能导入了,以前都没问题,我用以前的Excel导入重复的数据进行测试都不能导了,怀疑是不是服务器上OleDB是不是出什么问题了

支持(0) 反对(0) LgV5 | 园豆:221 (菜鸟二级) | 2015-04-23 11:40

@车上有首长: 建议用Windows管理工具中的“Data Sources (ODBC)”测试一下,看能不能连上Excel

支持(0) 反对(0) dudu | 园豆:38823 (高人七级) | 2015-04-23 11:43

@dudu: 怎么进行测试呢?用代码还是啥?代码写在哪里

支持(0) 反对(0) LgV5 | 园豆:221 (菜鸟二级) | 2015-04-23 11:55

@车上有首长: 记得在配置完成时有一个“测试”按钮

支持(0) 反对(0) dudu | 园豆:38823 (高人七级) | 2015-04-23 11:59
0

服务器的Execl版本有问题。OLEDB.12.0这里指定了版本。你查看下本机的Execl和服务器的版本肯定不一致。

仰望繁星的猪 | 园豆:286 (菜鸟二级) | 2015-04-23 11:48

有的

支持(0) 反对(0) LgV5 | 园豆:221 (菜鸟二级) | 2015-04-23 11:54

@车上有首长: 我没用过这种指定方式,只知道服务器必须安装对应的office,是安装。

目前开发的项目中使用的是NOPI,直接引用office的很坑。再检查一下bin文件夹里面是不是没包含相关的office dll

支持(0) 反对(0) 仰望繁星的猪 | 园豆:286 (菜鸟二级) | 2015-04-23 13:02
0

用 OLEDB,不用配置 ODBC。你可以把你的测试程序放到服务器上运行下。

Launcher | 园豆:45045 (高人七级) | 2015-04-23 18:03
0

服务器64位的,OLEDB只支持32位,IIS 应用程序池-->启用32位应用程序: 设置为true

大志若愚 | 园豆:1900 (小虾三级) | 2015-04-24 09:25
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册