当前位置: 首页 > 工具软件 > Npgsql > 使用案例 >

Npgsql 官方NET入门(一)【开始】

黄聪
2023-12-01

Npgsql旨在完全兼容ADO.NET,其API应该与其他.NET数据库驱动程序几乎相同。 这是一个基本的代码段,让您开始。

var connString = "Host=myserver;Username=mylogin;Password=mypass;Database=mydatabase";

using (var conn = new NpgsqlConnection(connString))
{
    conn.Open();

    // Insert some data
    using (var cmd = new NpgsqlCommand())
    {
        cmd.Connection = conn;
        cmd.CommandText = "INSERT INTO data (some_field) VALUES (@p)";
        cmd.Parameters.AddWithValue("p", "Hello world");
        cmd.ExecuteNonQuery();
    }

    // Retrieve all rows
    using (var cmd = new NpgsqlCommand("SELECT some_field FROM data", conn))
    using (var reader = cmd.ExecuteReader())
        while (reader.Read())
            Console.WriteLine(reader.GetString(0));
}

您可以在MSDN文档或Internet上的许多教程中找到有关ADO.NET API的更多信息。

DbProviderFactory

上面的例子涉及一些Npgsql特定的类型(NpgsqlConnectionNpgsqlCommand …),这使您的应用程序具有特定的Npgsql。 如果您的代码需要数据库可移植,则应该使用ADO.NET DbProviderFactory API。 简而言之,您在应用程序的App.config(或machines.config)文件中注册Npgsql的提供者工厂,然后在代码中获取它,而不引用任何Npgsql特定类型。 然后,您可以使用工厂来创建一个DbConnectionNpgsqlConnection扩展),还有一个DbCommand等等。

为此,请将以下内容添加到App.config中:

<system.data>
  <DbProviderFactories>
    <add name="Npgsql Data Provider" invariant="Npgsql" description=".Net Data Provider for PostgreSQL" type="Npgsql.NpgsqlFactory, Npgsql, Culture=neutral, PublicKeyToken=5d8b90d52f46fda7"/>
  </DbProviderFactories>
</system.data>

GAC安装

在某些情况下,您需要将Npgsql安装到全局程序集缓存(GAC)中。 通常情况下,您正在使用可与任何ADO.NET提供程序配合使用的通用数据库程序,但不会附带Npgsql或直接引用它。 对于这些情况,您可以下载Npgsql Windows安装程序:它会将Npgsql(以及可选的Entity Framework提供程序)安装到GAC中,并将Npgsql的DbProviderFactory添加到您的machine.config文件中。 这不是一般推荐使用Npgsql的方法 - 总是通过Nuget安装,如果可能的话。 除了Npgsql.dll,这也将安装System.Threading.Tasks.Extensions.dll到GAC。

 类似资料: