`
wyf
  • 浏览: 433459 次
  • 性别: 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出

    ### 使用OLE DB读写Excel的方法 #### 一、引言 在进行数据处理与分析时,Excel 是一种非常常见的工具,而使用OLE DB (Object Linking and Embedding, Database)来读取或写入Excel文件则是一种高效且灵活的方式。...

    C#操作Excel(OLEDB)

    本示例探讨了如何使用C#通过OLEDB(Object Linking and Embedding, Database)接口来操作Microsoft Excel文件。OLEDB是微软提供的一种数据访问技术,允许程序与各种类型的数据源进行交互,包括Excel工作簿。 首先,...

    OleDb 的方式操作excel表

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

    C#excel导入报错Microsoft.ACE.OLEDB.12.0.rar

    1. **NPOI**: 这是一个.NET平台上的开源库,可以用来读写Excel文件,无需依赖Microsoft Office组件。 2. **EPPlus**: 另一个流行的库,专门针对Excel 2007以上的Open XML格式。它提供了强大的API,能够方便地操作...

    c# 读写 Excel 代码

    使用EPPlus可以方便地读写Excel,例如: ```csharp using OfficeOpenXml; ExcelPackage.LicenseContext = LicenseContext.NonCommercial; using (var package = new ExcelPackage(new FileInfo("C:\\file.xlsx...

    教你如何使用C#读写Excel

    在C#中,读写Excel是一项常见的任务,用于处理数据导入导出或数据分析。本文将详细介绍两种主要的方法:使用OleDb和使用COM Interop(Microsoft.Office.Interop.Excel)库。 一、使用OleDb读取Excel 这种方法依赖...

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

    OleDb简单易用,能够快速读写Excel文件,支持较新的Excel版本。然而,它的缺点在于只能进行基本的读写操作,无法进行复杂的格式设置或公式编辑。此外,使用OleDb时需要安装与Excel版本匹配的Jet驱动。 连接Excel...

    microsoft.ace.oledb.12.0.rar

    标题 "microsoft.ace.oledb.12.0.rar" 涉及的是Microsoft Office Access连接引擎的一个版本,这是用于读写Access数据库文件(.mdb和.accdb)的组件。在描述中提到,这个压缩包是为了解决“microsoft.ace.oledb.12.0...

    Microsoft.ACE.OLEDB.12.0

    标题 "Microsoft.ACE.OLEDB.12.0" 指的是 Microsoft ...总的来说,Microsoft.ACE.OLEDB.12.0 是一个重要的数据访问组件,尤其在处理Access和Excel数据时,但随着技术的进步,开发者应关注更现代、更安全的解决方案。

    C#以OleDb方式访问Excel2007所需文件的安装程序

    总结来说,"C#以OleDb方式访问Excel2007所需文件的安装程序"主要涉及的技术点包括C#编程、OleDb连接、AccessDatabaseEngine.exe组件、连接字符串构造以及数据的读写操作。理解并掌握这些知识点,可以帮助开发者有效...

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

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

    在用到导出Excel等相关功能时,出现“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序。”的异

    标题中的问题涉及到的是在执行与Excel交互操作时遇到的一个常见错误,即“未在本地计算机上注册‘microsoft.ACE.oledb.12.0’提供程序”。这个错误通常是由于缺少Microsoft Access Database Engine(也称为ACE OLEDB...

    C# 通过 oledb 操作Excel实例代码

    OLE DB是微软提供的一种数据访问技术,它是一个底层的API,用于访问多种数据源,例如数据库、文件、邮件系统等。在操作Excel文件时,OLE DB提供了一种方式,让开发者可以不必关心Excel的复杂结构,而是通过统一的...

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

    1. OLE对象的特点:OLE(Object Linking and Embedding)是一种技术,用于在一个文档内嵌入或链接另一个程序的对象。在Access数据库中,OLE对象可以是各种格式的多媒体数据,如图像、音频、视频等。这些对象在数据库...

    Asp.net 导出Excel文件总结(导出csv、Office COM组建、Jet OLEDB、NPOI)

    Jet OLEDB是Microsoft Access数据库引擎,也可用于读写Excel文件。通过ADO.NET,我们可以连接到Excel文件,创建工作表,插入数据等。这种方法的优点是不需要安装Office,只需安装Access Database Engine。但是,它...

    ODBC方式读写EXCEL

    以下是一个使用Python的pandas库和pyodbc库的示例: ```python import pandas as pd import pyodbc # 创建ODBC连接字符串 conn_str = ( r'DRIVER={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};' r...

    未在本地计算机上注册Microsoft.ACE.OLEDB.12.0

    标题 "未在本地计算机上注册Microsoft.ACE.OLEDB.12.0" 是一个常见的错误消息,通常出现在尝试使用Microsoft Access Database Engine (ACE) OLEDB提供程序连接到Excel或其他Access数据库时。这个错误表明你的系统...

    FG_List - Copy (2).rar_browngr1_excel_oledb

    标题中的"FG_List - Copy (2).rar_browngr1_excel_oledb"暗示了这是一个使用VB.NET编程语言处理Excel文件的例子,其中可能涉及到数据操作和数据库连接。"browngr1"可能是项目或代码库的特定标识符。"excel"表示我们...

    C#读写Excel文件

    **解析**:该方法使用OLEDB执行更新和插入操作,实现对Excel文件中数据的批量修改和新增记录。 #### 五、注意事项 - 在操作完毕后需要释放资源,避免内存泄漏问题。 - 如果涉及到敏感数据,请确保在读写操作前后...

Global site tag (gtag.js) - Google Analytics