2015-09-25 49 views
0

我目前正在研究一个VB应用程序,每天从网络文件夹读取一个新的Excel表并将数据复制到数据库。试图首先使用我的dataAdapter的fill()方法时,我遇到了一个错误。错误是“System.Data.OleDb.OleDbException(0x80040E09):无法更新,数据库或对象是只读的。” 这里是一个代码段发生错误(最后一行):VB.Net System.Data.OleDb.OleDbException只读DB对象

 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

_ “'一个同事建议...使用IMEX = 1” _你试过吗?如果是,它的工作是毫无疑问的,如果没有,请提及它。如果你还没有尝试过,试试吧。 –

+0

哦ddang对不起,没有足够的类型。我曾尝试过,它给出了相同的错误 –

+0

您的文件在网络上。并且它所在的目录可能没有来自运行代码的用户帐户的完全访问权限。或文件本身是只读的 –

回答