VB.Net System.Data.OleDb.OleDbException只读数据库对象

时间:2015-09-25 14:43:57

标签: asp.net .net vb.net excel

我目前正在开发一个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";

1 个答案:

答案 0 :(得分:0)

发现了这个问题。必须编辑Microsoft Jet Engine的注册表项,因为它目前只接受一些精选的文件类型 - 不包括.xls。

https://support.microsoft.com/en-us/kb/245407#/en-us/kb/245407