2012-11-27 57 views
0

我正在創建一個網站(asp.net和C#),我需要從訪問數據庫讀取一些數據(具有文件擴展名:.mdb或accdb )由用戶從他的電腦中選擇,然後使用這些數據來更新SQL Server數據庫。如何從客戶端讀取ms-access數據庫文件使用asp.net

那麼如何從客戶端的訪問數據庫中讀取數據並選擇其中的一些(在某些if語句下)來更新SQL Server數據庫中的某些記錄?

+2

這可能是不可能在客戶端。你需要上傳服務器和訪問MS訪問數據庫和操縱數據,並從那裏下載.. –

+0

所以如何管理,上傳和更新數據在SQL我需要刪除上傳的一個,因爲用戶將上傳多次和我不想超過服務器與未使用的文件 –

+1

humm ..你可以通過創建調度程序刪除這些數據庫文件這些都是舊的至少一天(24小時).. –

回答

1

你麪包車調用此方法在Page_Load事件

public void RemoveTemporaryFiles() { 
     string pathTemp = "d:\\uploads\\"; 
     if ((pathTemp.Length > 0) && (Directory.Exists(pathTemp))) { 
      foreach (string file in Directory.GetFiles(pathTemp)) { 
       try { 
        FileInfo fi = new FileInfo(file); 
        if (fi.CreationTime < DateTime.Now.AddHours(-24)) { 
         File.Delete(file); 
        } 
       } catch (Exception) { } 
      } 
     } 
    } 
+0

thnx很多樣本代碼 –

1

這不是從出HTML/ASPX/ActiveX技術水平進入客戶端文件系統出於安全原因的最佳做法。創建一個客戶端Visual Studio Windows窗體解決方案(而不是HTML/ASPX頁面)可以檢索記錄並將它們提交給Web應用程序中的一個asp.net服務(WCF),在我看來,這是最好的選擇。

如果你真的需要這個功能,你總是可以創建一個ActiveX組件並將它嵌入你的HTML/ASPX頁面。但是,我不會推薦這麼做,原因很多,比如瀏覽器兼容性,瀏覽器安全設置,一般安全性。

附註:您還可以用文件上加載器組件上傳您的dBASE和再訪問服務器端級別的dBASE和事後再次刪除dBASE文件。安全的方式不是一個雷鳴般的解決方案,你正在上傳「所有的數據」,而不是像要求的第一個地方的幾個記錄。

+0

我想使用上傳方法也許這種方式將更多控制,謝謝大家澄清其他人的缺點 –

+0

我現在有一個問題,當我上傳訪問數據庫如何從那裏讀取數據並訪問那時數據庫將在服務器上。所以我可以使用像這樣的常用方式ConnectionString =「Provider = Microsoft.Jet.OLEDB.4.0; Mode = Share Deny None; Data Source =」+ strFileName;或者因爲它在服務器上不起作用? –

+1

它會工作:)如果您知道完全的dbase連接名稱,則可以使用動態連接字符串或甚至是靜態的。對於連接字符串設置衝浪到[鏈接](http://www.connectionstrings.com)您可以像這樣使用它:Provider = Microsoft.Jet.OLEDB.4.0; Data Source = C:\ mydatabase.mdb; User Id = admin ;密碼=;衝浪到[鏈接](http://www.connectionstrings.com/access)**請記住,IUSER需要讀取和寫入訪問目錄,這是因爲它將在讀取dbase時創建的臨時鎖定dbase文件。* * – ChiYoung

相關問題