我正在将我的应用程序从Windows窗体更改为Windows服务。
conn.GetSchema(“Tables”)在两个代码库中的工作方式不同。
在新的代码库中,我无法返回Excel工作表。 conn.GetSchema(“Tables”)。Rows.Count为0.我仔细检查了所有引用,没有什么不同。我在代码中找不到任何其他差异,我认为这会产生这种影响。任何想法和我还能找到什么?
这是我的全部功能(是的,我知道我应该使用For Each):
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
谢谢, 布拉德
答案 0 :(得分:1)
您需要包含Web服务器的路径(System.Web.HttpContext.Current.Server.MapPath),因此请尝试使用以下内容替换“conn”赋值:
Dim conn = New OleDb.OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0;data source=" & System.Web.HttpContext.Current.Server.MapPath(FileName) & ";Extended Properties=Excel 8.0;")