0
我有一個asp.net網站需要連接到遠程服務器上的dBase文件。遠程服務器配置了ODBC系統DSN連接,但我不知道如何連接到它。連接到遠程服務器上的dBase文件
我有一個asp.net網站需要連接到遠程服務器上的dBase文件。遠程服務器配置了ODBC系統DSN連接,但我不知道如何連接到它。連接到遠程服務器上的dBase文件
服務器上的ODBC連接不會對您有所幫助。 ODBC連接需要在要連接的計算機上設置,而不是要連接到的計算機。
爲了連接到dBASE文件(並將其看作一個數據庫),你將需要
它還處理一個問題,你將有閱讀來自.NET的DBase文件。如果您經常閱讀它們,應用程序將開始拋出「System.Resources.Exceeded」異常。我發現唯一可靠的解決方案是殺死應用程序並重新啓動它,這是在名爲FixMyself的代碼中完成的。 (不包括,因爲它包含敏感數據)。 FixMyself例程基本上啓動了第二個exe,它殺死了這個exe文件,然後重新啓動它。
下面的示例代碼是從生產代碼複製的,應該給你一個push int他的正確方向。它映射驅動器,連接和讀取。
這是醜陋的,但它的作品。這也只是部分的,因爲它調用了這裏沒有包含的幾個函數。但是,再次,它應該足以讓你走。
Public Function GetRegisterConnectionString(ByVal PathToFolder As String)
Return "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & PathToFolder & ";Extended Properties=dBASE IV;User ID=Admin;Password="
End Function
Public Sub ReadMyDbaseFile(ByVal DriveLetter As String, ByVal IPAddress As String)
Dim DpalmPath As String = "\\" & IPAddress & "\c$\Dpalm"
Dim cn As New System.Data.OleDb.OleDbConnection("")
cn.ConnectionString = Me.GetRegisterConnectionString(DpalmPath)
If ds.Tables.Contains("CurrentPrices") Then
ds.Tables.Remove("CurrentPrices")
End If
Dim POSAdapter As New System.Data.OleDb.OleDbDataAdapter("select * From MyDbaseFile WHERE SomeField > 0 AND ACTIVE = -1", cn)
Try
POSAdapter.Fill(ds, "CurrentPrices")
Catch ex As Exception
If InStr(ex.ToString().ToLower(), "system resource exceeded") Then
WriteToLog("System Resource Exceeded Error was thrown on register " & DriveLetter & ", IP " & IPAddress & ".")
Me.FixMyself()
Else
Throw New Exception(ex.ToString())
End If
End Try
ds.Tables("CurrentPrices").Columns.Add("LastModified", GetType(Date))
POSAdapter.Dispose()
POSAdapter = Nothing
cn.Dispose()
cn = Nothing
ds.AcceptChanges()
GC.Collect()
End Sub
謝謝。如果您可以發佈該代碼,我會非常感激! – user204588 2010-08-19 20:17:45