开发者社区> ghost丶桃子> 正文

使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法

简介:
+关注继续查看

整了很长的时间都没有搞定,还以为是权限的问题呢,设置了以后还是不行。超郁闷的。

原来是链接语句的问题

string strCon = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + _path2 + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";

尤其是:

Extended Properties='Excel 8.0;HDR=yes;IMEX=1'

     A: HDR ( HeaDer Row )设置
    若指定值为Yes,代表 Excel 档中的工作表第一行是栏位名称

    若指定值為 No,代表 Excel 档中的工作表第一行就是資料了,沒有栏位名称

    B:IMEX ( IMport EXport mode )设置

     IMEX 有三种模式,各自引起的读写行为也不同,容後再述:
     0 is Export mode
     1 is Import mode
     2 is Linked mode (full update capabilities)
    

      我这里特别要说明的就是 IMEX 参数了,因为不同的模式代表著不同的读写行为:

      当 IMEX=0 时为“汇出模式”,这个模式开启的 Excel 档案只能用来做“写入”用途。

      当 IMEX=1 时为“汇入模式”,这个模式开启的 Excel 档案只能用来做“读取”用途。

      当 IMEX=2 时为“连結模式”,这个模式开启的 Excel 档案可同时支援“读取”与“写入”用途。

这下问题就清楚了。 

链接语句改为:string strCon = "Provider=Microsoft.Jet.Oledb.4.0;Data Source=" + _path2 + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=0;'";

就OK了。

 

参考:

 http://www.cnblogs.com/Richinger/archive/2008/09/28/1301170.html

欢迎加群互相学习,共同进步。QQ群:iOS: 58099570 | Android: 330987132 | Go:217696290 | Python:336880185 | 做人要厚道,转载请注明出处!http://www.cnblogs.com/sunshine-anycall/archive/2008/10/23/1317968.html

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
好工具推荐系列:github上fork了别人的项目后,再同步更新新的版本(★firecat个人实践★)
好工具推荐系列:github上fork了别人的项目后,再同步更新新的版本(★firecat个人实践★)
178 0
Visual Studio 2010 起始页中 不显示最近使用的项目问题,解决办法
最近新装了vs2010,发现打开vs2010 后 起始页面中的最近使用的栏目中 并未显示最近加载的项目 解决办法如下: 运行 regedit 打开下面的键值: HKEY_CURRENT_USER/Software/Microsoft/Windows/CurrentVersion/Policie...
510 0
C#使用SqlBulkCopy将DataTable写入数据库的表中(表不存在则创建新表,数据存在则更新,不存在则插入)
原文:.net使用SqlBulkCopy导入数据(创建新表) .net2.0后ado.net提供了一个快速导入sqlserver的方法sqlbulkcopy.导入效率非常高.  包装了一个简单的sqlbulkcopy类,用于数据从datatable导入到sqlserver.
2575 0
TP-Link路由器端口映射8081端口的Nexus服务外网无法访问的解决办法
TP-Link路由器端口映射8081端口的Nexus服务外网无法访问的解决办法 环境描述: 路由器:TP-Link TL-R478G+ 内网服务器信息: IP:192.168.1.221 系统:CentOS 6.5 服务:Nexus 端口:8081 映射方法: 问题描述: 其它服务器的服务通过此映射方法通过外网IP都可以访问了,但唯独这个不行,映射的时候尝试换了多个端口也无济于事。
1208 0
Debian下使用Vi方向键变字母的解决办法
Debian下使用Vi方向键变字母的解决办法
1210 0
1955
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
OceanBase 入门到实战教程
立即下载
阿里云图数据库GDB,加速开启“图智”未来.ppt
立即下载
实时数仓Hologres技术实战一本通2.0版(下)
立即下载