2012-11-27 54 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

相关问题