使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法
使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法
转自:http://www.cnblogs.com/Richinger/archive/2008/09/28/1301170.html
前两天使用oledb连接excel的办法为单位某部门从一个excel的多个sheet中作连选抽出需要的数据,程序非常简单,结果很快就出来,原来手工需要很长时间才能选出的结果现在几乎一点击就有了结果。使用人员非常满意,由于是多人使用,开始只是将结果显示在一个页面上。后来他们要求将结果写入该xls文件的另一个sheet中,我随便写了个语句以为可以立马搞掂,没想到居然出现了“操作必须使用一个可更新的查询”。因为读取结果正常,我开始以为是excel文件所处的文件夹没有写权限所致。增加了相应权限后,结果依然如故。没办法还是检查程序吧,仔细检查了一下,问题发现了,原来开始只是为了读取excel我将连接写成了如下格式:
Private filename As String = Server.MapPath(".") + "\test.xls;Extended Properties='Excel 8.0;HDR=yes;IMEX=1'"
Dim constr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename
特别注意
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 档案可同时支援“读取”与“写入”用途。
看完这些大家就不用再说我的写入为什么有问题了吧。我将连接改为如下:
Private filename As String = Server.MapPath(".") + "\test.xls;Extended Properties='Excel 8.0;HDR=yes;IMEX=2'"
Dim constr As String = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filename
运行一切ok。
使用oledb读写excel出现“操作必须使用一个可更新的查询”的解决办法的更多相关文章
- Access提示“操作必须使用一个可更新的查询”的解决办法
问题:软件工程师开发了一个asp.net+access网站,本地调试增.删.改和查都没有异常.部署到服务器windows2008 R2的IIS上运行后,查询没有异常.可是在修改操作提交时,产生异常:提 ...
- C#使用oledb连接excel运行Insert Into语句出现“操作必须使用一个可更新的查询”的解决的方法
我错误发生时的环境:Windows 7,Framework 4.0,Microsoft Office 2007,VS2010,c# WinForm. 部分代码: string strConn = &q ...
- 问题.NETSystem.Data.OleDb.OleDbException 操作必须使用一个可更新的查询
问题:System.Data.OleDb.OleDbException 操作必须使用一个可更新的查询 问题现象:用asp.net连access数据库,查询可以,插入数据报错.在.NET中F5可以使用方 ...
- wcf使用JetEntityFrameworkProvider.dll写access数据库时,报"操作必须使用一个可更新的查询"错误的解决办法
由于users用户组无权重写access数据库,需要设置users组用户能读写access数据库.
- 网站后台登录aspcms 提示错误号:-2147467259,错误描述:操作必须使用一个可更新的查询。sql=update AspCms_Content set TimeStatus=0 where TimeStatus=1 and Timeing <= 解决方法。
把data文件夹的权限改下,改成user组可以修改.写入,就好了. 还有一个问题,就是进入后台的时候提示没有访问权限的问题,解决方法看下图
- Perl读写Excel简单操作
Perl读写Excel简单操作 使用模块 Spreadsheet::ParseExcel Spreadsheet::WriteExcel 读Excel #!/usr/bin/perl -w use s ...
- 【210】通过OleDb读写Excel数据到DataTable
参考:C#通过OLEDB读写Excel2013显示到datagrid控件,修改数据集并更新excel2013 解决:未在本地计算机上注册“Microsoft.ACE.OLEDB.12.0”提供程序.( ...
- python语言(五)匿名函数、读写excel、操作数据库、加密、redis操作
一.匿名函数 递归:就是调用自己 def func(): num = int(input('num:')) if num % 2 ==0: print('是偶数') return else: func ...
- windows 2008R2 无法安装操作系统补丁,或无法安装Sp1升级包的解决办法
windows 2008R2 无法安装操作系统补丁,或无法安装Sp1升级包的解决办法 给 C:\ 加上users读取和执行,,列出文件夹内容,及读取的权限,不需要就用到子目录 将 C:\Windows ...
- NPOI读写Excel sheet操作
QueryInfo dataInfo = new QueryInfo(); dataInfo.CustomSQL = $@" select t1.name name,t1.url url f ...
随机推荐
- 【rabbitmq】单独配置某一个消费者手动ack,其他消费者自动ack
前言:博主才疏学浅,此方案仅供参考,如有更优方案请大佬评论区告知,十分感谢✿✿ヽ(°▽°)ノ✿ 问题背景:同一个服务中存在多个不同业务的rabbitmq的消费者,其中一个推送业务的消费者需要加死信队列 ...
- 探究SQL SERVER 更改跟踪
1.介绍 SQL SERVER在2008以上的版本提供两个用于数据库中跟踪数据更改的功能:变更数据捕获(CDC)与更改跟踪(CT).这两个功能使应用程序能够确定对数据库中的用户表所做的 DML 更改( ...
- python之路 57 linux 基础 命令与执行效果
虚拟环境的安装与配置 1.VMware软件安装 这里有一个15版本和一个16版本的 链接:https://pan.baidu.com/s/1vkNxxQ6NS9q7XYJ6qiVMaQ 提取码:t3l ...
- [C#]简单的理解委托和事件
委托 在C++中可以利用"函数指针"将对方法的引用作为实参传递给另一个方法,而C#中可以利用委托提供相同的功能. 委托-内部机制 但是委托实际上是一个特殊的类.委托必须直接或间接的 ...
- 微软外服札记④——Spark中的那些坑...
Spark中的那些坑 Spark中的那些坑 前言 读取配置文件 时区陷阱 怪异的DayOfWeek substring陷阱 IP地址解析 枚举的数值 posexplode函数 为什么我的程序运行那么慢 ...
- java入门与进阶 P-2.7+P-3.1
判断语句常见错误 忘了大括号 永远在if和else后面加上大括号,即使当时后面只有一条语句 if后面的分号 错误使用== 和= if只要求()里面的值是零或者非零 = 是赋值 == 是判断是否相同 代 ...
- Java语言的跨平台性-JDK,JRE和JVM
Java语言的跨平台性 1 Java虚拟机--JVM JVM(Java Virtual Machine ):Java虚拟机,简称JVM,是运行所有Java程序的假想计算机,是Java程序的 运行环境, ...
- 使用 flexible.js + rem 制作苏宁移动端首页
一.技术选型 二.搭建相关文件夹 三.设置视口标签以及引入初始化样式文件和js文件 四.body 样式 五.rem 适配方案二 body样式修改 index.css body { min-width: ...
- 10月26日内容总结——第三方模块下载与requests、openpyxl模块
目录 一.第三方模块的下载与使用 下载第三方模块的方式一:pip工具 部分错误解决案例: 下载第三方模块的方式二:pycharm中下载 pip仓库地址 二.网络爬虫模块之requests模块 1.ge ...
- 构建api gateway之 openresty 中如何使用 wasm
openresty 中如何使用 wasm WASM 是什么? WebAssembly是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果.它设计的目的不是为了手写代码而是为诸如C.C++ ...