如何使用 asp.net 从客户端读取 ms-access 数据库文件
Posted
技术标签:
【中文标题】如何使用 asp.net 从客户端读取 ms-access 数据库文件【英文标题】:how to read ms-access database file from the client side using asp.net 【发布时间】:2012-11-27 08:40:08 【问题描述】:我正在创建一个网站(asp.net 和 C#),我需要从用户从他的 pc 中选择的 access 数据库(具有文件扩展名:.mdb 或 accdb)中读取一些数据,然后使用这些数据来更新 SQL服务器数据库。
那么如何在客户端从access数据库中读取数据并选择其中的一些(在一些if语句下)来更新SQL server数据库中的一些记录?
【问题讨论】:
这在客户端可能是不可能的。您需要在服务器上上传并访问 MS-access 数据库并操作数据并从那里下载.. 那么如何管理它,在 sql 中上传和更新数据后,我需要删除上传的数据,因为用户会上传多次,我不想用未使用的文件使服务器过载 嗯..您可以通过创建至少一天(24 小时)旧的调度程序来删除那些 DB 文件.. 好主意,但你能告诉我一些如何实现整个过程的代码吗? 看看这个关于How to access an Access database using javascript?的问题 【参考方案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)
【讨论】:
【参考方案2】:出于安全原因,从 html/ASPX/ActiveX 级别访问客户端文件系统不是最佳做法。创建一个客户端 Visual Studio Windows 窗体解决方案(而不是 HTML/ASPX 页面),它可以检索记录并将它们提交到您的 web 应用程序中的 asp.net 服务 (WCF),这在我看来是最好的选择。
如果您“真的”需要此功能,您始终可以创建一个 ActiveX 组件并将其嵌入到您的 HTML/ASPX 页面中。但是,出于浏览器兼容性、浏览器安全设置、一般安全性等很多原因,我不会推荐这个。
旁注:您也可以使用文件上传器组件上传您的数据库,然后在服务器端访问您的数据库,然后再次删除数据库文件。安全方面的解决方案不是雷鸣般的解决方案,您首先要上传“所有数据”,而不是像请求的那样上传几条记录。
【讨论】:
我正在考虑使用上传的方法,也许这种方式会更受控制,非常感谢澄清别人的缺点 我现在有一个问题,当我上传访问数据库时,我如何从那里读取数据,并且那时访问数据库将在服务器上。所以我可以使用通常的方式,比如 ConnectionString ="Provider=Microsoft.Jet.OLEDB.4.0;Mode=Share Deny None;Data Source="+strFileName;还是因为它在服务器上它不起作用? 它会起作用 :) 如果您确切知道 dbase 连接名称,您可以使用动态连接字符串,甚至可以使用静态连接。对于连接字符串设置冲浪到link 您可以像这样使用它:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=C:\mydatabase.mdb;User Id=admin;Password=;冲浪到link 记住,IUSER 需要对该目录的读写权限,这是因为它会在读取 dbase 时创建临时锁定 dbase 文件。以上是关于如何使用 asp.net 从客户端读取 ms-access 数据库文件的主要内容,如果未能解决你的问题,请参考以下文章
从 ASP.NET 中的 Oracle DB 函数读取数据表
asp.net 客户端iframe中的excel文件如何操作