【问题标题】:ODBC connection to ACCDB in web.configODBC 连接到 web.config 中的 ACCDB
【发布时间】:2022-08-09 13:15:35
【问题描述】:

想要在 ASP.NET 中以 ODBC(而不是 OleDb)数据源的形式连接到 ACCDB 文件,但在连接字符串方面遇到了困难。当我计划将 Web 应用程序从 Visual Studio 2019 部署到 Azure 时,我需要一些可以完成旅程的东西。

这是我从 connectionstrings.com 尝试的(我发现并非所有这些字符串都是最新的,或者不一定便于插入 web.config):

Driver={Microsoft Access Driver (*.mdb, *.accdb)};Dbq=C:\\mydatabase.accdb;Uid=Admin;Pwd=;

这会从我正在开发的 IIS Express 中返回 keyword not supported: driver

    标签: asp.net connection odbc web-config


    【解决方案1】:

    嗯,看起来不错:

    我建议这样做:

    Driver={Microsoft Access Driver (*.mdb, *.accdb)};
    dbq=C:\test\test44.accdb;driverid=25;fil=MS Access;
    maxbuffersize=2048;maxscanrows=8;pagetimeout=5;safetransactions=0;
    threads=3;uid=admin;usercommitsync=Yes
    

    以上是 Visual Studio 中的连接生成器吐出的内容。 你有 Dbq - 小心 - 我相信上限很重要 - 所以试试 dbq。

    接下来: 房间里有巨大的大象。

    您使用的是 x32 位驱动程序还是 x64 位驱动程序?您必须将您的项目位大小(代码编译)设置与驱动程序匹配(您必须!!!)。

    所以这:

    您必须设置并强制您的项目以 x32 位运行。 (或者可能安装 x64 位版本的 Access 驱动程序。并且要小心。如果您正在运行 x64 位版本的驱动程序,并使用 Visual Studio 的测试连接?它总是会失败,因为 VS 作为 x32 位应用程序运行。你必须运行应用程序来测试连接 - 不要将测试连接与 VS 连接构建器一起使用(您可能没有使用它们,但如果您使用它们,只是想为您节省一天的工作浪费)。

    所以,创建一个 x32 配置项目。因此现在:

    而且我假设您使用驱动器的 c: 或“root”的示例连接只是一个示例,因为大多数 Windows 现在不允许直接从 c:root 位置使用文件。

    【讨论】:

    • 这样的一头巨大的大象……哈哈……我们不是距离 Office x64 的第一次推出还有 12 年吗?无论如何,@albert-d-kallal 非常感谢所有的演练和注意事项!我确实放弃了这个项目,因为 Web 服务器上的 .accdb 文件的性能(和安全性)非常差,无论是在 OLE DB 还是(更糟糕的)ODBC 下。可能与“32/64 大鸿沟”有关。
    • 实际上,odbc 仍然是可行的选择。 Oledb 甚至 .net SQL 提供程序都不是真正的行业标准,也不是平台网络。但 odbc 不仅限于 windows,实际上是跨平台的,并且得到了大多数供应商的 windows 以外的支持。并且访问性能实际上可以相当好,因为它在 Web 服务器上运行。但是,鉴于有这么多可用的基于服务器的数据库,以及线程问题?很难为网站使用访问数据库提供理由。但在几乎所有情况下,良好的性能将是良好的设计,而不是数据库的错误。
    • 今天,几乎所有网站都以 x64 位运行,因此这确实表明应该使用 x64 访问。但是,有一些很棒的迁移工具,例如用于访问 SQL 服务器的 SQL 迁移助手,并且该工具可从 ms 免费下载。因此,我会迁移出访问权限,因为为此目的存在如此出色的工具。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-13
    • 1970-01-01
    • 2012-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多