0
我正在將我的應用程序從Windows窗體更改爲Windows服務。Excel文件上的conn.GetSchema(「表格」)不返回工作表
conn.GetSchema(「Tables」)在兩個代碼庫中的工作方式不同。
在新的代碼庫中,我無法獲得返回的Excel工作表。 conn.GetSchema(「Tables」).Rows.Count是0.我已經雙重檢查了所有的引用,沒有什麼不同。我無法在我的代碼中發現任何其他差異,我認爲它會產生這種效果。任何想法和我可以尋找什麼?
這裏是我的全部功能(是的,我知道我應該使用一個):
Private Function GetWorksheets(FileName As String) As String()
Dim rv As List(Of String)
Dim conn = New OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" & FileName & ";Extended Properties=Excel 8.0;")
conn.Open()
For x As Integer = 0 To conn.GetSchema("Tables").Rows.Count - 1
rv.Add(conn.GetSchema("Tables").Rows(x)("TABLE_NAME"))
Next x
conn.Close()
Return rv.ToArray
End Function
感謝, 布拉德
我不是從Web服務器這樣做,但一個窗口服務。我已經在使用絕對路徑。但是,你讓我找到了解決方案!在早期的代碼中有一個錯誤,我將錯誤的路徑傳遞給文件。我會期待一個異常,但實際上連接打開(conn.state是Open),即使它指向一個不存在的文件。 –
布拉德,看看這個答案:http://stackoverflow.com/questions/2714262/relative-path-issue-with-net-windows-service –