OleDb Excel连接错误" System.Data.OleDb.OleDbException"

时间:2014-04-06 09:30:08

标签: vb.net excel database-connection oledb oledbconnection

我创建了一个小型vb.net应用程序,它连接到共享文件夹上的Excel工作表。 如果我在使用应用程序之前打开excel,它的效果很好,问题是当excel在后台打开时我得到一个" System.Data.OleDb.OleDbException"尝试打开连接时出错。

我已经读过一些关于这个错误的内容,我知道它与本地临时库的访问权限有关。 所以我的问题是: 1)有解决方案吗? 2)对于我的excel文件位于共享驱动器上的情况,这是最好的连接策略吗?

连接代码:

    skuPath = "C:\path.xlsm"
    cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;" + "data source=" + skuPath + ";Extended Properties=Excel 8.0;")
    q1 = "select * from [" + year + "$B4:V128]"
    da = New System.Data.OleDb.OleDbDataAdapter(q1, cn)
    cn.Open()
    da.Fill(ds, "Table1")
    cn.Close()
    dt = ds.Tables(0)

我在cn.Open()上收到错误。

1 个答案:

答案 0 :(得分:0)

几个星期前出现了完全相同的问题。
正如史蒂夫建议的那样,错误是由oledb提供程序的错误版本引起的。

试试这个:

skuPath = "C:\path.xlsm"
cn = New System.Data.OleDb.OleDbConnection("provider=Microsoft.ACE.OLEDB.12.0;" + "data source=" + skuPath + ";Extended Properties=""Excel 12.0;HDR=Yes""")
q1 = "select * from [" + year + "$B4:V128]"
da = New System.Data.OleDb.OleDbDataAdapter(q1, cn)
cn.Open()
da.Fill(ds, "Table1")
cn.Close()
dt = ds.Tables(0)