【发布时间】:2015-09-25 14:43:56
【问题描述】:
我目前正在开发一个 VB 应用程序,该应用程序每天从网络文件夹中读取一个新的 Excel 表并将数据复制到数据库。尝试第一次使用我的 dataAdapter 的 fill() 方法时,我遇到了一个错误。错误是“System.Data.OleDb.OleDbException (0x80040E09):无法更新。数据库或对象是只读的。” 这是发生错误的代码的 sn-p(最后一行):
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";
【问题讨论】:
-
"`一位同事建议...使用 IMEX=1" 你试过了吗?如果是并且它有效,那么毫无疑问,如果不是,请提及。如果您还没有尝试过,请尝试一下。
-
哦,对不起,没有输入足够的。我确实尝试过,它给出了同样的错误
-
您的文件在网络上。它所在的目录可能没有运行代码的用户帐户的完全访问权限。或者文件本身是只读的