当前位置: 首页 > 编程笔记 >

postgresql 使用Npgsql提供程序从.NET访问Postgresql

阮喜
2023-03-14
本文向大家介绍postgresql 使用Npgsql提供程序从.NET访问Postgresql,包括了postgresql 使用Npgsql提供程序从.NET访问Postgresql的使用技巧和注意事项,需要的朋友参考一下

示例

Npgsql是Postgresql最受欢迎的.NET提供程序之一,它ADO.NET兼容并且与其他.NET数据库提供程序几乎相同地使用。

典型的查询是通过创建命令,绑定参数然后执行命令来执行的。在C#中:

var connString = "Host=myserv;Username=myuser;Password=mypass;Database=mydb";
using (var conn = new NpgsqlConnection(connString))
{
    var querystring = "INSERT INTO data (some_field) VALUES (@content)";
    
    conn.Open();
    // 使用CommandText和Connection构造函数创建一个新命令
    using (var cmd = new NpgsqlCommand(querystring, conn))
    {
        // 添加参数并使用NpgsqlDbType枚举设置其类型
        var contentString = "你好,世界!";
        cmd.Parameters.Add("@content", NpgsqlDbType.Text).Value = contentString;

        // 执行不返回任何结果的查询
        cmd.ExecuteNonQuery();


        /* It is possible to reuse a command object and open connection instead of creating new ones */

        // 创建一个新查询并设置其参数
        int keyId = 101;
       cmd.CommandText= "SELECT primary_key, some_field FROM data WHERE primary_key = @keyId";
        cmd.Parameters.Clear();
        cmd.Parameters.Add("@keyId", NpgsqlDbType.Integer).Value = keyId;

        // 执行命令并逐行读取行
        using (NpgsqlDataReader reader = cmd.ExecuteReader())
        {
            while (reader.Read())   // 对于0行或在读取结果的最后一行之后返回false
            {
                // 读取一个整数值
                int primaryKey = reader.GetInt32(0);
                // 要么 
                primaryKey = Convert.ToInt32(reader["primary_key"]);

                // 读取文字值
                string someFieldText = reader["some_field"].ToString();
            }
        }
    }
}    // C#“使用”指令为我们调用conn.Close()和conn.Dispose()
           

 类似资料:
  • 该数据库提供程序允许 Entity Framework Core 被用于访问 PostgreSQL。它被作为 Npgsql 项目的一部分来维护。 注意 该提供程序没有作为 Entity Framework Core 项目的一部分来维护。当考虑第三方提供程序的时候,一定要评估其质量、许可、支持情况等等以确保它们符合你的需求。 安装 安装 Npgsql.EntityFrameworkCore.Post

  • 本文向大家介绍postgresql 使用C-API访问PostgreSQL,包括了postgresql 使用C-API访问PostgreSQL的使用技巧和注意事项,需要的朋友参考一下 示例 C-API是访问PostgreSQL的最强大的方法,令人惊讶的舒适。 编译和链接 在编译期间,您必须将PostgreSQL包含目录(可以通过找到)添加pg_config --includedir到包含路径。 您

  • 我在Application Insight Analytics(这个很棒的工具)中创建了一个查询,我打算用它来以某种方式进行监视,但从我发现的情况来看,这并不是那么容易的? 该查询返回一些我想要设置Application Insight警报的数据(例如,if(column1等于'1')then alert()或if(column2>10)then alert()。 或者如果这不可能,那么Analy

  • 问题 如何在web.py中提供XML访问? 如果需要为第三方应用收发数据,那么提供xml访问是很有必要的。 解法 根据要访问的xml文件(如response.xml)创建一个XML模板。如果XML中有变量,就使用相应的模板标签进行替换。下面是一个例子: $def with (code) <?xml version="1.0"?> <RequestNotification-Response> <St

  • 问题内容: 我有一个简单的自签名小程序(使用keytool和jarsigner完成): 基本上,它的作用是执行“记事本c:/hello.txt”。 然后,我将小程序嵌入html: 当我访问页面时,JRE启动并询问我是否要启动此applet,以及是否信任它。我按确定。然后记事本开始-应该。没问题 但是,然后我将其添加到HTML页面: 现在,当我按此文本时,calc应该开始-对吗?但这给了我: 这是怎

  • 我正在使用Spring Security 4.0.1,并希望使用多个身份验证提供程序使用基于Java的配置进行身份验证。如何指定提供程序顺序? 我希望使用AuthenticationManagerBuilder,因为这就是<code>WebSecurityConfigurerAdapter。configureGlobal()公开,但我看不到任何指定顺序的方法。我需要手动创建ProviderMana