欢迎来到HELLO素材网! 南京网站制作选择顺炫科技
丰富的DIV CSS模版、JS,jQuery特效免费提供下载
当前位置:主页 > 建站教程 > 服务器教程 >

利用oledb读写excel出现“操作必须利用一个可更新的查询”的处理

发表于2019-04-13 19:16| 次阅读| 来源网络整理| 作者session

摘要:利用oledb读写excel出现“操作必须利用一个可更新的查询”的处理

利用oledb读写excel出现“操作必须利用一个可更新的查询”的处理

  前两天利用oledb衔接excel的办法为单位某部门从一个excel的多个sheet中作连选抽出需求的数据,程序十分简略,后果很快就进去,原来手工需求很长工夫能力选出的后果如今几乎一点击就有了却果。利用人员十分称心,因为是多人利用,末尾只是将后果显示在一个页面上。起初他们要求将后果写入该xls文件的另一个sheet中,我随意写了个语句认为可能立马搞掂,没想到居然出现了“操作必须利用一个可更新的查询”。由于读取后果失常,我末尾认为是excel文件所处的文件夹没有写权限所致。添加了相应权限后,后果荡然无存。没办法还是反省程序吧,细心反省了一下,成绩发现了,原来末尾只是为了读取excel我将衔接写成了如下格式:
  
  Private filename As String=Server.MapPath(".")+"test.xls;Extended Properties='Excel8.0;HDR=yes;IMEX=1'"
  
  Dim constr As String="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+filename
  
  顺便留意
  
  Extended Properties='Excel8.0;HDR=yes;IMEX=1'
  
  A:HDR(HeaDer Row)设置
  
  若指定值为Yes,代表Excel档中的工作表第一行是栏位称号
  
  若指定值為No,代表Excel档中的工作表第一行就是資料了,沒有栏位称号
  
  B:IMEX(IMport EXport mode)设置
  
  IMEX有三种形式,各自惹起的读写行为也不同,容後再述:
  
  0is Export mode
  
  1is Import mode
  
  2is 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='Excel8.0;HDR=yes;IMEX=2'"
  
  Dim constr As String="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+filename
  
  运转所有ok。