【问题标题】:Database Connectivity ASP.NET - PostgreSQL数据库连接 ASP.NET - PostgreSQL
【发布时间】:2010-01-15 22:48:00
【问题描述】:

我正在尝试运行一个 C# 应用程序,该应用程序从 PostgreSQL 数据库 (8.4) 获取数据并正在使用 PostgreSQL OLE DB 提供程序

这是我的连接字符串

字符串连接字符串 = @"Provider=PostgreSQL OLE DB 提供者;数据 源=本地主机;位置=;用户 ID=;密码=;超时=1000";

得到的错误是

“PostgreSQL OLE DB 提供程序” 提供者未在 本地机器

谁能指出我应该在哪里更正以便连接到数据库。顺便说一句,我正在使用 PGOLEDBLib。

【问题讨论】:

    标签: asp.net postgresql ado.net connection-string


    【解决方案1】:

    我见过几个不同的“pgoledb”库。似乎没有一个实际上被命名为“pgoledblib”,因此此信息可能适用于您,也可能不适用于您。

    most recently activePGOLEDB 记录了它们的连接字符串属性here;看来他们使用了不同的 Provider 值——“PGNP.1”。

    Another provider,好像是languishing since 2006,有连接字符串here;这些符合 OrbMan 之前的建议。

    当然,您可能会发现,不为此类提供商支付任何费用会导致在安装、配置和使用方面付出高昂的代价。为了缓解这种头痛,我提供了一个指向my employeroptions supporting ODBC, JDBC, and ADO.NET clients on many platforms 的链接。

    【讨论】:

      【解决方案2】:

      您使用 OLE DB 提供程序的任何特殊原因?我相信总体思路是,如果您使用本地 .net 提供程序,您可以获得更好的性能,并且我认为还有功能 - 例如。 http://npgsql.projects.postgresql.org/

      【讨论】:

      • 我使用过 Npgsql 并且知道它的功能。我想使用其他提供程序,没有特别的理由使用 OLE DB 提供程序。但从我所读到的使用 OLE DB 提供程序是一个更好的选择。
      • 很公平。不过,AFAIK 有多个可用于 PostgreSQL 的 OLEDB 适配器 - 确保您不要选择基本上停止开发的那个。此时可能只有专有选项可用 - 我不完全确定。但“pgoledb”此时似乎无人维护。
      【解决方案3】:

      尝试对 Provider 属性使用“PostgreSQL”或“PostgreSQL.1”。如果这不起作用,您可能需要重新安装驱动程序。

      【讨论】:

        【解决方案4】:

        我找到了解决办法。

        第 1 步:下载并安装

        https://www.pgoledb.com/index.php/component/filecabinet/?task=download&cid[0]=15

        第 2 步:重启电脑。

        第三步:设置连接字符串如下

        Provider=PGNP.1;Data Source=localhost;Persist Security Info=True;Initial Catalog=myDatabase;User ID=yyy;password=xxx
        

        它应该按您的预期工作

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2014-03-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-07-24
          相关资源
          最近更新 更多