`
wyf
  • 浏览: 422861 次
  • 性别: Icon_minigender_1
  • 来自: 唐山
社区版块
存档分类
最新评论

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

阅读更多

前两天使用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
 

分享到:
评论

相关推荐

    使用oledb读写excel出

    使用oledb读写excel出使用oledb读写excel出使用oledb读写excel出使用oledb读写excel出

    C#操作Excel(OLEDB)

    C#操作Excel(OLEDB)的实例,你可以参考这个代码发挥一下,写出属于自己的作品

    OleDb 的方式操作excel表

    * 4、对注册表的操作,解决读取Excel表格数据位数的限制【OperateRegedit】。 * 5、删除磁盘上指定的文件【ClearExcelFile】。 * 6、根据传入的Datatable数据源,生成Excel数据表...

    Excel通用读写组件,不需要服务器OLEDB支持,是直接格式文件读写.

    Excel通用读写组件, 不需要服务器OLEDB支持, 是直接格式文件读写 调用方法超级简单,支持windows server 2008 服务器 大家以后导入导出EXCEL 就不用服务器安装OFFICE 了 The aim of this project is provide ...

    C#使用oledb操作excel文件的方法

    本文实例讲述了C#使用oledb操作excel文件的方法。分享给大家供大家参考。具体分析如下: 不管什么编程语言都会提供操作Excel文件的方式,C#操作Excel主要有以下几种方式: 1.Excel 说明:利用Office 的Excel组件来...

    c# 读写 Excel 代码

    c# 读写 Excel 代码 PrintGiftVolume.rar

    Delphi环境下Access数据库中OLE对象的读写操作(论文)

    分析了Access数据库OLE 对象的特点,并给 出了在 Delphi环境下实际实现OLE对 象的保存\打 开与显示的处理方法(A ccess 数 据库 中 O LE 对象 的读 写操 作 许 俊 论文)

    Excel读写类(无需office环境)

    一般DotNet实用Oledb读取Excel的时候,经常出现数据类型错误,导致无效结果。比如Excel中编码列,编码:00001225 读取到Datagridview中可能变成 1224数字类型了,此Excel类不会出现,能正常读取全部数据。 本Excel...

    最好用的.net读写Excel库,支持winform及ASP.NET

    迄今为止最好用得.net读写EXCEL库,比OleDb好了不止一点,不需要安装Office,不会出现由于Excel进程没释放导致的文件占用问题,不多说了,你们懂的!里边有例子及自己写的简要的中文说明,winform及Asp.net均可使用。

    .net 读写Excel

    .net 读写Excel XML格式读和写 ACE.OLEDB读 欢迎访问http://121.18.78.216

    Excel导入导出算法(C#)

    1、使用OLEDB方式读写Excel,不需要Office组件支持; 2、支持导入导出时进度条(ProgressBar); 3、(这是跟上一版本的最大区别)可以将本地DataSet中的数据类型转换为对应的OleDB的数据类型导出,使导出的数据区...

    C#使用Microsoft.Jet.OLEDB.4.0方式访问数据库

    摘要:C#源码,数据库应用,连接Excel,OLEDB C#使用Microsoft.Jet.OLEDB.4.0方式访问数据库,C#直接操作读写Excel文件,这个应用也是非常实用的,许多时候我们,我们使用微软的平台编程,有必要利用微软平台的优势。

    标准Excel写入类

    1、使用OLEDB方式读写Excel,不需要Office组件支持; 2、支持导入导出时进度条(ProgressBar); 3、可以将本地DataSet中的数据类型转换为对应的OleDB的数据类型导出,使导出的数据区分开时间、数字、字符串,而...

    c#操作读取和创建Excel

    使用c#对Excel的创建和读取,兼容了xls以及xlsx格式。Provider=Microsoft.ACE.OLEDB.12.0 Provider=Microsoft.Jet.OLEDB.4.0

    C#使用Ado.net读取Excel表的方法

    可以使用内置的OLEDB来访问Excel的XLS表格。下面的例子演示了如何在C#编程读取Excel工作表。需要引用System.Data.OleDb库using System;using System.Data.OleDb;namespace ConsoleApplication1{ class Program { ...

    asp.net知识库

    Asp.net 利用OleDb的GetOLEDBSchemaTable方法得到数据库架构信息 用于 Visual Studio .Net 的 IBM DB2 开发外接程序 第2章 并发操作的一致性问题 (2) Using sqlite with .NET Visual Studio 2005 中的新 DataSet ...

    Access 2000数据库系统设计(PDF)---001

    25111.2 用生成表查询创建新表 25111.2.1 设计和测试选择查询 25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 ...

    Access 2000数据库系统设计(PDF)---002

    25111.2 用生成表查询创建新表 25111.2.1 设计和测试选择查询 25211.2.2 将选择查询转换为生成表查询 25311.2.3 为新表建立关系 25411.2.4 使用新的tblShipAddresses表 25511.3 创建操作查询向一个表中追加记录 ...

    Access 2000数据库系统设计(PDF)---018

    1487.2.5 将字段数据类型转换为Access数据类型 1497.2.6 使用链接表管理器加载项重新链接表 1507.2.7 导入表和将数据库文件链接为表 1507.3 导入和链接电子数据表文件 1517.3.1 通过导入Excel工作表创建一个表 1517....

Global site tag (gtag.js) - Google Analytics