.net 安装Postgresql驱动程序ngpsql

news2024/12/24 0:01:52

.net 安装Postgresql驱动程序ngpsql

最近搞一个物联网项目,需要采集fanuc数控机床的数据,厂家提供的API只支持windows,所以就决定C#开发,数据库用postgresql, 安装数据库驱动一波三折。

作为一个讨厌微软的老程序猿,一看到.net这个乱,更讨厌了

现在.net的框架。

  1. .net framework
  2. .net standard
  3. .net core
  4. .net

乱不乱? 都是些啥玩意,不扯远了,我是在讨厌微软的路上越走越远了,可是为了生活,还要弄这恶心的玩意。。

一、安装

ngpsql下载地址:

https://www.nuget.org/stats/packages/Npgsql?groupby=Version

一定要根据项目使用的框架选择合适的驱动,我的项目使用的框架是.net framework 4.8,只能选择4.x的ngpsql,再新的版本不支持了。

打开4.1.12的页面https://www.nuget.org/packages/Npgsql/4.1.12

在这里插入图片描述

在vs中,工具菜单,Nuget包管理器,管理解决方案的Nuget程序包,看看源

在这里插入图片描述

查看有没有这个源:

在这里插入图片描述

如果没有,手工添加一下。然后打开工具,nuget包管理器,程序包管理器控制台:

这行这个命令:

NuGet\Install-Package Npgsql -Version 4.1.12
(base) PM> NuGet\Install-Package Npgsql -Version 4.1.12

正在尝试收集与目标为“.NETFramework,Version=v4.6.1”的项目“Test”有关的包“Npgsql.4.1.12”的依赖项信息
收集依赖项信息花费时间 9.77 秒
正在尝试解析程序包“Npgsql.4.1.12”的依赖项,DependencyBehavior 为“Lowest”
解析依赖项信息花费时间 0 毫秒
正在解析操作以安装程序包“Npgsql.4.1.12”
已解析操作以安装程序包“Npgsql.4.1.12”
从“nuget.org”检索包“Microsoft.Bcl.AsyncInterfaces 1.1.0” 
从“nuget.org”检索包“Npgsql 4.1.12” 
从“nuget.org”检索包“System.Buffers 4.5.0” 
从“nuget.org”检索包“System.Memory 4.5.3” 
从“nuget.org”检索包“System.Numerics.Vectors 4.5.0” 
从“nuget.org”检索包“System.Runtime.CompilerServices.Unsafe 4.6.0” 
从“nuget.org”检索包“System.Text.Encodings.Web 4.6.0” 
从“nuget.org”检索包“System.Text.Json 4.6.0” 
从“nuget.org”检索包“System.Threading.Tasks.Extensions 4.5.3” 
从“nuget.org”检索包“System.ValueTuple 4.5.0” 
  GET https://api.nuget.org/v3-flatcontainer/npgsql/4.1.12/npgsql.4.1.12.nupkg
  GET https://api.nuget.org/v3-flatcontainer/system.buffers/4.5.0/system.buffers.4.5.0.nupkg
  GET https://api.nuget.org/v3-flatcontainer/system.text.json/4.6.0/system.text.json.4.6.0.nupkg
  GET https://api.nuget.org/v3-flatcontainer/microsoft.bcl.asyncinterfaces/1.1.0/microsoft.bcl.asyncinterfaces.1.1.0.nupkg
  GET https://api.nuget.org/v3-flatcontainer/system.text.encodings.web/4.6.0/system.text.encodings.web.4.6.0.nupkg
  GET https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/4.6.0/system.runtime.compilerservices.unsafe.4.6.0.nupkg
  GET https://api.nuget.org/v3-flatcontainer/system.threading.tasks.extensions/4.5.3/system.threading.tasks.extensions.4.5.3.nupkg
  GET https://api.nuget.org/v3-flatcontainer/system.memory/4.5.3/system.memory.4.5.3.nupkg
  OK https://api.nuget.org/v3-flatcontainer/system.buffers/4.5.0/system.buffers.4.5.0.nupkg 142 毫秒
  OK https://api.nuget.org/v3-flatcontainer/system.memory/4.5.3/system.memory.4.5.3.nupkg 143 毫秒
  OK https://api.nuget.org/v3-flatcontainer/system.threading.tasks.extensions/4.5.3/system.threading.tasks.extensions.4.5.3.nupkg 180 毫秒
  OK https://api.nuget.org/v3-flatcontainer/microsoft.bcl.asyncinterfaces/1.1.0/microsoft.bcl.asyncinterfaces.1.1.0.nupkg 186 毫秒
  OK https://api.nuget.org/v3-flatcontainer/system.text.json/4.6.0/system.text.json.4.6.0.nupkg 226 毫秒
  OK https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/4.6.0/system.runtime.compilerservices.unsafe.4.6.0.nupkg 232 毫秒
  OK https://api.nuget.org/v3-flatcontainer/system.text.encodings.web/4.6.0/system.text.encodings.web.4.6.0.nupkg 274 毫秒
  OK https://api.nuget.org/v3-flatcontainer/npgsql/4.1.12/npgsql.4.1.12.nupkg 308 毫秒
已通过内容哈希 1Am6l4Vpn3/K32daEqZI+FFr96OlZkgwK2LcT3pZ2zWubR5zTPW3/FkO1Rat9kb7oQOa4rxgl9LJHc5tspCWfg== 从 https://api.nuget.org/v3/index.json 安装 Microsoft.Bcl.AsyncInterfaces 1.1.0 。
已通过内容哈希 HxozeSlipUK7dAroTYwIcGwKDeOVpQnJlpVaOkBz7CM4TsE5b/tKlQBZecTjh6FzcSbxndYaxxpsBMz+wMJeyw== 从 https://api.nuget.org/v3/index.json 安装 System.Runtime.CompilerServices.Unsafe 4.6.0 。
已通过内容哈希 pL2ChpaRRWI/p4LXyy4RgeWlYF2sgfj/pnVMvBqwNFr5cXg7CXNnWZWxrOONLg8VGdFB8oB+EG2Qw4MLgTOe+A== 从 https://api.nuget.org/v3/index.json 安装 System.Buffers 4.5.0 。
已通过内容哈希 +MvhNtcvIbqmhANyKu91jQnvIRVSTiaOiFNfKWwXGHG48YAb4I/TyH8spsySiPYla7gKal5ZnF3teJqZAximyQ== 从 https://api.nuget.org/v3/index.json 安装 System.Threading.Tasks.Extensions 4.5.3 。
已通过内容哈希 BXgFO8Yi7ao7hVA/nklD0Hre1Bbce048ZqryGZVFifGNPuh+2jqF1i/jLJLMfFGZIzUOw+nCIeH24SQhghDSPw== 从 https://api.nuget.org/v3/index.json 安装 System.Text.Encodings.Web 4.6.0 。
正在将程序包“System.Buffers.4.5.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已通过内容哈希 3oDzvc/zzetpTKWMShs1AADwZjQ/36HnsufHRPcOjyRAAMLDlu2iD33MBI2opxnezcVUtXyqDXXjoFMOU9c7SA== 从 https://api.nuget.org/v3/index.json 安装 System.Memory 4.5.3 。
已通过内容哈希 4F8Xe+JIkVoDJ8hDAZ7HqLkjctN/6WItJIzQaifBwClC7wmoLSda/Sv2i6i1kycqDb3hWF4JCVbpAweyOKHEUA== 从 https://api.nuget.org/v3/index.json 安装 System.Text.Json 4.6.0 。
已将程序包“System.Buffers.4.5.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已通过内容哈希 VGcF1AQRGd1+HQvXFqc0u+swxZMGCFy/T8eCk7w2Jo9oXYkNWdb7FWQVd7lM1Zm0gwVucK04smyneMXnUdhI7Q== 从 https://api.nuget.org/v3/index.json 安装 Npgsql 4.1.12 。
已将程序包“System.Buffers.4.5.0”添加到“packages.config”
已将“System.Buffers 4.5.0”成功安装到 Test
正在将程序包“System.Numerics.Vectors.4.5.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.Numerics.Vectors.4.5.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.Numerics.Vectors.4.5.0”添加到“packages.config”
已将“System.Numerics.Vectors 4.5.0”成功安装到 Test
正在将程序包“System.Runtime.CompilerServices.Unsafe.4.6.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.Runtime.CompilerServices.Unsafe.4.6.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.Runtime.CompilerServices.Unsafe.4.6.0”添加到“packages.config”
已将“System.Runtime.CompilerServices.Unsafe 4.6.0”成功安装到 Test
正在将程序包“System.Memory.4.5.3”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.Memory.4.5.3”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.Memory.4.5.3”添加到“packages.config”
已将“System.Memory 4.5.3”成功安装到 Test
正在将程序包“System.Text.Encodings.Web.4.6.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.Text.Encodings.Web.4.6.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.Text.Encodings.Web.4.6.0”添加到“packages.config”
已将“System.Text.Encodings.Web 4.6.0”成功安装到 Test
正在将程序包“System.Threading.Tasks.Extensions.4.5.3”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.Threading.Tasks.Extensions.4.5.3”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.Threading.Tasks.Extensions.4.5.3”添加到“packages.config”
已将“System.Threading.Tasks.Extensions 4.5.3”成功安装到 Test
正在将程序包“Microsoft.Bcl.AsyncInterfaces.1.1.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“Microsoft.Bcl.AsyncInterfaces.1.1.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“Microsoft.Bcl.AsyncInterfaces.1.1.0”添加到“packages.config”
已将“Microsoft.Bcl.AsyncInterfaces 1.1.0”成功安装到 Test
正在将程序包“System.ValueTuple.4.5.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.ValueTuple.4.5.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.ValueTuple.4.5.0”添加到“packages.config”
已将“System.ValueTuple 4.5.0”成功安装到 Test
正在将程序包“System.Text.Json.4.6.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.Text.Json.4.6.0”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“System.Text.Json.4.6.0”添加到“packages.config”
已将“System.Text.Json 4.6.0”成功安装到 Test
正在将程序包“Npgsql.4.1.12”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“Npgsql.4.1.12”添加到文件夹“D:\BaiduSyncdisk\7_浩信\6_hx_lot\Test\packages”
已将程序包“Npgsql.4.1.12”添加到“packages.config”
已将“Npgsql 4.1.12”成功安装到 Test
执行 nuget 操作花费时间 21.43 秒
已用时间: 00:00:32.9171668

它会自动解决依赖问题,前提是源要设置正确。

二、测试

static void TestPG()
        {
            // 连接字符串
            string connString = $"Host={dbIp};Username={dbUser};Password={dbPasswd};Database={dbName}";

            // 创建连接对象
            using (var conn = new NpgsqlConnection(connString))
            {
                conn.Open(); // 打开数据库连接

                // 执行查询
                using (var cmd = new NpgsqlCommand("SELECT id,login FROM res_users", conn))
                {
                    using (var reader = cmd.ExecuteReader())
                    {
                        while (reader.Read())
                        {
                            // 读取数据
                            int id = reader.GetInt32(0);
                            string name = reader.GetString(1);

                            Console.WriteLine($"ID: {id}, Name: {name}");
                        }
                    }
                }

                // 执行插入
                //using (var cmd = new NpgsqlCommand("INSERT INTO mytable (id, name) VALUES (@id, @name)", conn))
                //{
                //    cmd.Parameters.AddWithValue("id", 1);
                //    cmd.Parameters.AddWithValue("name", "John Doe");

                //    int rowsAffected = cmd.ExecuteNonQuery();
                //    Console.WriteLine($"Rows Affected: {rowsAffected}");
                //}

                conn.Close(); // 关闭数据库连接
            }
        }

测试没有问题,折腾了一天,终于搞定。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1302298.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

宝塔面板部署Apache服务器搭建本地站点发布到公网可访问【内网穿透】

文章目录 前言1. 环境安装2. 安装cpolar内网穿透3. 内网穿透4. 固定http地址5. 配置二级子域名6. 创建一个测试页面 正文开始前给大家推荐个网站,前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家…

CTF比赛中web安全题型讲解

在CTF(Capture The Flag)竞赛中,Web安全题目是测试参赛者对Web应用漏洞利用和防御能力的重要环节。以下是30道Web类题型及其标准答案,对初次打比赛的网安人员来说,还是有一些帮助的,喜欢可以收藏。 题目及…

六级高频词组1

目录 词组 参考链接 词组 1. abide by(be faithful to ;obey)忠于;遵守。 2. be absent from… 缺席,不在 3. absence or mind(being absent-minded) 心不在焉 4. absorb(take …

POJ - 2528 Mayor‘s posters

本题注意离散化的时候可能会出现区间串联情况&#xff0c;比如 [1,10] [5,10] [1,4] 和 [1,10] [6,10] [1,4] 直接离散化的话两者一样&#xff0c;但是实际上是不一样的 解决办法是你在相邻的差不是1的数对中再插一个数就好了 离线区间染色 查询根节点 #include<iostrea…

LeetCode力扣每日一题(Java):21、合并两个有序链表

一、题目 二、解题思路 1、我的思路 两个有序链表的合并已经是老生常谈的话题了&#xff0c;大家肯定并不陌生 依次比较两链表结点的值&#xff0c;将值小的添加到新链表的末尾&#xff0c;并将指针后移&#xff08;因为之前学C语言说说惯了指针&#xff0c;不知道在java中…

【Android开发-25】Android中多线程编程用法介绍

1&#xff0c;线程基本用法 在Android中&#xff0c;线程的使用主要有两种方法&#xff1a;一种是扩展java.lang.Thread类&#xff0c;另一种是实现Runnable接口。 1.1以下是一个简单的Android线程继承Thread的用法示例&#xff1a; public class MyThread extends Thread {…

ffmpeg过滤器filter理论与实战

文章目录 前言一、DirectShow1、简介2、程序基本结构3、架构 二、过滤器1、视频过滤器 -vf2、音频过滤器 -af3、过滤器链&#xff08;Filterchain&#xff09;4、过滤器图&#xff08;Filtergraph&#xff09;①、基本语法②、Filtergraph 的分类 5、结构体间的关系图 三、过滤…

手动搭建Magento电商网站

Magento是一个用PHP编写的开源电子商务平台。它的架构是可扩展和模块化的&#xff0c;使其成为构建大中型网站的绝佳选择。Magento支持从5.6到7.1的PHP版本&#xff0c;并利用MySQL数据库进行数据存储。本文将为您介绍如何在CentOS 7操作系统的ECS实例上搭建Magento电商网站。 …

如何优雅使用 vue-html2pdf 插件生成pdf报表

使用 vue-html2pdf 插件 业务背景&#xff0c;老板想要一份能征服客户的pdf报表&#xff0c;传统的pdf要手撕&#xff0c;企业中确实有点耗费时间&#xff0c;于是github上面看到开源的这个插件就…废话不多说&#xff0c;直接上教程 1.使用下面命令安装 vue-html2pdf npm i…

牛客算法心得——买卖股票的最好时机三(dp)

大家好&#xff0c;我是晴天学长&#xff0c; 一个找状态的经典题&#xff0c;需要的小伙伴可以关注支持一下哦&#xff01;后续会继续更新的。&#x1f4aa;&#x1f4aa;&#x1f4aa; 1) .买卖股票的最好时机&#xff08;三&#xff09; 假设你有一个数组prices&#xff0c;…

【深度学习】AlexNet网络实现猫狗分类

【深度学习】AlexNet网络实现猫狗分类 AlexNet简介 AlexNet是一种卷积神经网络&#xff08;Convolutional Neural Network&#xff0c;CNN&#xff09;模型&#xff0c;它在2012年的ImageNet图像分类挑战赛中取得了重大突破&#xff0c;引发了深度学习在计算机视觉领域的热潮…

【C知道】帮我答疑解惑:java的entity字段是map,如何映射到数据库

目录 一、问题场景描述 二、跟【C知道】第一次沟通 &#xff08;1&#xff09;我问 &#xff08;2&#xff09;他答 &#xff08;3&#xff09;我说 三、跟【C知道】第二次沟通 &#xff08;1&#xff09;我问 &#xff08;2&#xff09;他答 &#xff08;3&#xff0…

iptables 命令说明

摘要 iptables是一个用于Linux系统的网络包过滤工具。它是一个基于内核的防火墙系统&#xff0c;用于配置和管理网络规则以控制网络流量。iptables可以对数据包进行过滤、转发、修改目的地、屏蔽IP等操作&#xff0c;可通过定义不同的规则和策略来确保网络的安全性和可靠性。 …

猫咪口味大考验:最受欢迎的猫罐头品牌揭晓!

养猫的这几年德罐也买了不少了&#xff0c;很早以前德罐给我的感觉就是&#xff0c;物美价廉&#xff0c;而且质量保障也不错&#xff0c;很美丽。但最近的德罐恕在下高攀不起了。 作为一个已经离职的宠物医生&#xff0c;我也发现不少人有这样的困扰吧&#xff01;其实&#x…

Linux 高级管理,基于域名的虚拟Web主机

实验环境 某公司的网站服务器使用的公网IP地址为192.168.184.50并使用该IP地址注册了两个域名 www.bdqn1.com和www.jbit.com。服务器中已经安装好了 CentOS 7操作系统.并通过源码编译的 方式安装了Web服务器软件httpd-2.4.25.现需要对httpd服务进行配置.以支持同时运行这两个 W…

mybatis多表映射-分步查询

1、建库建表 create database mybatis-example; use mybatis-example; create table t_book (bid varchar(20) primary key,bname varchar(20),stuid varchar(20) ); insert into t_book values(b001,Java,s001); insert into t_book values(b002,Python,s002); insert into …

LinuxC中进程通信

LinuxC中进程通信 信号&#xff08;Signals&#xff09;&#xff1a;Linux 提供了信号机制&#xff0c;允许一个进程向另一个进程发送信号以通知特定事件的发生。这是一种轻量级的通信机制&#xff0c;通常用于处理异步事件。您可以使用 kill 命令或 kill 函数来发送信号&…

小米路由器4A千兆版如何刷OpenWRT并使用固定地址远程访问

文章目录 前言1. 安装Python和需要的库2. 使用 OpenWRTInvasion 破解路由器3. 备份当前分区并刷入新的Breed4. 安装cpolar内网穿透4.1 注册账号4.2 下载cpolar客户端4.3 登录cpolar web ui管理界面4.4 创建公网地址 5. 固定公网地址访问 前言 OpenWRT是一个高度模块化、高度自…

基于微服务架构的餐饮系统的设计与实现-计算机毕设 附源码 86393

基于微服务架构的餐饮系统的设计与实现 摘 要 近年来,我国经济和社会发展迅速,人们物质生活水平日渐提高,餐饮行业更是发展迅速,人们对于餐饮行业的认识和要求也越来越高。传统形式的餐饮行业都是以人为本,管理起来需要很多人力、物力、财力,既不方便管理者的管理,也不方便顾…

大创项目推荐 卷积神经网络手写字符识别 - 深度学习

文章目录 0 前言1 简介2 LeNet-5 模型的介绍2.1 结构解析2.2 C1层2.3 S2层S2层和C3层连接 2.4 F6与C5层 3 写数字识别算法模型的构建3.1 输入层设计3.2 激活函数的选取3.3 卷积层设计3.4 降采样层3.5 输出层设计 4 网络模型的总体结构5 部分实现代码6 在线手写识别7 最后 0 前言…