代码之家  ›  专栏  ›  技术社区  ›  akdom

C.NET+PostgreSQL

  •  51
  • akdom  · 技术社区  · 17 年前

    我正在研究一个项目,该项目使用C.NET(位于Windows框中)作为主要语言,PostgreSQL作为后端数据库(后端位于Linux框中)。我听说odbc.net允许轻松集成这两个组件。

    有没有人有过让C和PostgreSQL一起工作的经验?如果是的话,你有什么关于如何处理的建议,你发现的问题,等等吗?

    8 回复  |  直到 8 年前
        1
  •  51
  •   dariol    10 年前

    我正在使用C_和Postgres NPGQL2 组件,它们工作很快,我推荐你。

    您可以从下载 https://github.com/npgsql/Npgsql/releases

    注: 如果希望应用程序与任何数据库一起工作,可以使用 数据库提供程序目录 类并使用 IDB-连接 , 命令接口 , 偶像崇拜者 和/或 IDB交易 接口。

        2
  •  11
  •   Stradas    14 年前

    NPGSQL -.NET provider for postgresql-是一个优秀的驱动程序。如果您使用了更传统的ADO.NET框架,那么您在这里真的很幸运。我有连接到Oracle的代码,看起来几乎与PostgreSQL连接相同。更容易从甲骨文过渡到重用脑细胞。

    它支持调用SQL所需的所有标准操作,但它也支持调用 功能 (存储过程)。这包括归还 引用光标 . 这些文件写得很好,提供了有用的例子,而没有哲学或神秘。从文档中直接窃取代码,它将立即工作。

    Francisco Figueiredo,Jr和团队在这方面做得很好。
    现在在 github .
    https://github.com/franciscojunior/Npgsql2

    更好的信息网站是: http://npgsql.projects.postgresql.org/

    阅读文档! http://npgsql.projects.postgresql.org/docs/manual/UserManual.html

        3
  •  11
  •   David Schmitt    8 年前

    PostgreSQL的LINQ提供程序位于 https://www.nuget.org/packages/linq2db.PostgreSQL/ .

        4
  •  3
  •   sykora    17 年前

    我们使用Visual Studio 2005和PostgreSQL的devart ado.net数据提供程序开发了几个应用程序。( http://www.devart.com/pgsqlnet/ )

    此提供程序的一个优点是它提供了完整的Visual Studio支持。最新版本包括所有新的框架功能,如LINQ。

        5
  •  2
  •   Andrei Rînea    17 年前

    今天,大多数语言/平台(Java、.NET、PHP、Perl等)可以与几乎所有的DBMS(SQL Server、FieldBee、MySQL、Oracle、PostgreSQL等)一起工作,所以我不会担心一秒钟。当然,可能会有小故障和小问题,但没有显示阻止。

    正如jalcom建议的那样,您应该针对一组接口或至少一组基类(dbconnection、dbcommand等)进行编程,以获得易于适应的应用程序。

        6
  •  2
  •   Kibbee    17 年前

    你不应该有太多的问题。正如其他人提到的,有许多.NET PostgreSQL数据提供程序可用。您可能需要注意的一点是,像LINQ这样的功能可能无法使用。

        7
  •  2
  •   user542319    12 年前

    不要让缺乏LINQ支持阻止你。我使用的一种模式是总是将数据返回到列表中,然后Linq离开。当我发现MySQL中相同的(公认是模糊的)Linq表达式不能像SQL Server中那样返回相同的数据时,我就开始认真地做这件事。

        8
  •  1
  •   JRA    9 年前

    只需转到工具--nuget package manager--gt;管理器nuget package manager

    寻找 NPGSQL 然后选择项目并单击“安装”

    样例代码

    public void Demo()
            {
                NpgsqlConnection connection = new NpgsqlConnection();
                connection = d_connection; // your connection string
                connection.Open();              
                NpgsqlCommand cmd = new NpgsqlCommand();
                try
                {
                    cmd.Connection = connection;
                    cmd.CommandText = "select * from your table name";
                    cmd.CommandType = System.Data.CommandType.Text;
                    using (var dataReader = cmd.ExecuteReader())
                    {
                        while (dataReader.Read())
                        {
    
                         string answer= dataReader.IsDBNull(0) ? "" : dataReader.GetString(0);
    
                        }
                        dataReader.Dispose();
                    }
                }
                catch (Exception e)
                {
                }
                finally
                {
                    cmd.Dispose();
                    connection.Dispose();
                }            
            }
    

    不要在PostgreSQL中使用大写,因为它区分大小写。