如何使用 C# 查询远程 MS ACCESS .mdb 数据库
Posted
技术标签:
【中文标题】如何使用 C# 查询远程 MS ACCESS .mdb 数据库【英文标题】:How to query a remote MS ACCESS .mdb database using C# 【发布时间】:2011-04-16 04:27:22 【问题描述】:我正在尝试使用 C# 来查询微尘 MS ACCESS 数据库 .mdb 文件。将文件复制到本地机器时,我可以成功查询它。我只想远程放置文件,所以我的客户端程序不包含原始数据。
static string m_path = "http://www.xyz.com/temp/";
static string m_connWords = "Provider=Microsoft.JET.OLEDB.4.0;data source = " + m_path + "data.mdb";
我跳过其余的连接、阅读器和查询代码。
我确信当我将 m_path 更改为本地 mdb 副本的本地路径时,它会起作用。而且我在使用url路径的时候可以下载mdb文件,所以url路径指定正确。有人知道我错过了什么吗?
谢谢
【问题讨论】:
【参考方案1】:您无法通过 HTTP 连接到访问数据库。您需要通过文件共享 UNC (\server\share\access.mdb) 访问它。
【讨论】:
您好 Lynn,问题是服务器被锁定在安全域中,只有授权用户(我是其中之一)才能访问其文件系统。该服务器有一个用于网站托管的 apache 网络服务器。我正在考虑使用 http web 服务器来执行此操作。我没有足够的权限来配置服务器。我不确定我应该怎么做。 我说错了。您显然可以使用 RDS 通过 http 访问访问数据库(尽管我从未使用过它。)根据 connectionstrings.com,连接字符串看起来像:Provider=MS Remote;Remote Provider=Microsoft.Jet.OLEDB.4.0;远程服务器=server.adress.com;Data源=d:\myPath\myDatabase.mdf 此外,您需要为此配置 IIS。请参阅 MSKB:support.microsoft.com/kb/q253580 不太确定如何解决只有 apache 而没有 IIS 或访问配置服务器的问题。此时,我将开始寻找不同的解决方案。 我最好的想法是切换到基于非文件的数据库解决方案(想到 SQL Server Express),并将数据加载到其中。这样,您不会通过连接打开整个文件,而只是用于发送查询和接收数据的套接字。不幸的是,访问数据库从未设计为跨 WAN 类型的连接共享。【参考方案2】:我认为您必须为此进行一些 FTP 上传和临时下载....
查看此链接
http://www.codeproject.com/KB/IP/SimpleFTPDemo.aspx
当你把它放在临时目录中时,你会得到 MS Access 的本地路径
OR
打开网站的“客户端面板”并在其中创建 ODBC 驱动程序/MS 访问数据库... 请参阅有关如何在 SitePanel 中连接 Database MS Access 的信息。
你可以在那里看到所有的信息,比如 如何... 邮件客户端设置、MS Access 数据库连接、MS SQL 数据库连接、 例如,在我的域面板中,我在 ZNetPanel 上有这个...
然后我想你知道如何连接 ODBC 了!!
【讨论】:
我认为这不是一个好主意。问题是我的 mdb 文件很大 查看我编辑的答案..不要忘记给我投票..并接受答案..dud..!! :)以上是关于如何使用 C# 查询远程 MS ACCESS .mdb 数据库的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 C# 在 MS-Access 中的查询中使用带有通配符的 LIKE 运算符
使用 c# 和 oledb 查询更新 Ms-Access 2010 中的列值
使用带有日期的 C# 在 MS Access 97 数据库中清除查询