我目前正在开发一个VB应用程序,它每天从网络文件夹中读取一个新的Excel工作表并将数据复制到数据库。尝试首次使用dataAdapter的fill()方法时,我遇到了错误。错误是“System.Data.OleDb.OleDbException(0x80040E09):无法更新。数据库或对象是只读的。” 以下是发生错误的代码片段(最后一行):
Dim dt2 As DataTable
Dim myAdapter2 As Data.OleDb.OleDbDataAdapter
dt2 = New DataTable()
myAdapter2 = New Data.OleDb.OleDbDataAdapter(xls_sql, My.Settings.xlsfile)
myAdapter2.Fill(dt2)
我的查询是基本的:
xls_sql = "SELECT * FROM [" & FN & "]"
这是我的连接字符串设置:
Provider=Microsoft.Jet.OLEDB.4.0;Data Source=c:\temp\;Extended Properties='text;HDR=Yes;FMT = Delimited'
同事建议我将属性更改为
="Excel 8.0;HDR=Yes;IMEX=1";
答案 0 :(得分:0)
发现了这个问题。必须编辑Microsoft Jet Engine的注册表项,因为它目前只接受一些精选的文件类型 - 不包括.xls。
https://support.microsoft.com/en-us/kb/245407#/en-us/kb/245407