.net 安装Postgresql驱动程序ngpsql

.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.nupkgGET https://api.nuget.org/v3-flatcontainer/system.buffers/4.5.0/system.buffers.4.5.0.nupkgGET https://api.nuget.org/v3-flatcontainer/system.text.json/4.6.0/system.text.json.4.6.0.nupkgGET https://api.nuget.org/v3-flatcontainer/microsoft.bcl.asyncinterfaces/1.1.0/microsoft.bcl.asyncinterfaces.1.1.0.nupkgGET https://api.nuget.org/v3-flatcontainer/system.text.encodings.web/4.6.0/system.text.encodings.web.4.6.0.nupkgGET https://api.nuget.org/v3-flatcontainer/system.runtime.compilerservices.unsafe/4.6.0/system.runtime.compilerservices.unsafe.4.6.0.nupkgGET https://api.nuget.org/v3-flatcontainer/system.threading.tasks.extensions/4.5.3/system.threading.tasks.extensions.4.5.3.nupkgGET https://api.nuget.org/v3-flatcontainer/system.memory/4.5.3/system.memory.4.5.3.nupkgOK 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.mzph.cn/news/215178.shtml

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

相关文章

静态链接库和动态链接库(隐式载入显式载入)

文章目录 动态链接库和静态链接库什么是链接库?静态链接库动态链接库动态链接库的俩种链接方式加载时动态链接运行时动态链接 动态链接库和静态链接库 动态链接库和静态链接库都是共享代码的方法,只是二者略有区别。 以C/C为例,一个可执行文…

工作中用到的数通、安全的查询、工具、文档链接

文章目录 一、华为1.设备信息查询华为序列号查询华为设备信息速查 2.维护华为交换机命名规则查看光模块信息交换机ping参数大全 3.实用文档智能升级堆叠重启指定成员设备堆叠主备倒换策略路由实现多出口重定向下一跳vrf与vrf、vrf与public互访路由配置总结 二、奇安信1.授权申请…

四十五----组件库设计

组件库设计主要考虑几点。 有意义: 命名准确,充分表意。参数准确,必要的类型检查。适当的注释 通用性:不要耦合特殊的业务功能。不要包含特定的代码处理逻辑。 ⽆状态,⽆副作⽤:状态向上层提取,尽量少⽤内部状态。解耦IO操作。 避免过度封装:合理冗余。避免过度抽象。 …

Rust 学习

Rust 官网:https://www.rust-lang.org/zh-CN/ 1、Rust 简介 Rust 是一门注重安全(safety)、速度(speed)和并发(concurrency)的现代系统编程语言。Rust 通过内存安全来实现以上目标,但…

LintCode 123 · Word Search (DFS字符处理经典题!)

123 Word Search Algorithms Medium Description Given a 2D board and a string word, find if the string word exists in the grid. The string word can be constructed from letters of sequentially adjacent cell, where “adjacent” cells are those horizontally o…

arcgis api for js4.x 图层要素的增删改---使用服务地址的/applyEdits直接进行删除

添加新要素到图层 _addGeo(){cosnt self thislet url https://......./featurelayer/某某某图层/3let geo 你新绘制的图形let attributes 你新绘制图形的属性信息let addingGraphics Graphic({geometry:geo,attributes:attributes})const pro self._addToLayer(url , JS…

Day57力扣打卡

打卡记录 最小体力消耗路径 链接 Dijkstra 将Dijkstra算法从计算最短路径转化为计算路径最大差值。 class Solution:def minimumEffortPath(self, heights: List[List[int]]) -> int:n, m len(heights), len(heights[0])dist [0] [0x3f3f3f3f] * (n * m - 1)vis set…

iPhone 数据恢复:iMyFone D-Back iOS

iMyFone D-Back iOS 最佳 iPhone 数据恢复,最好的 iPhone 数据恢复软件,恢复成功率最高。 直接从iOS设备、iTunes/iCloud/第三方程序备份快速恢复数据。 有选择地恢复已删除的照片、WhatsApp、消息和 18 多种其他数据类型。 仅通过 iCloud 帐户访问即可从…

关系型数据库-SQLite介绍

优点: 1>sqlite占用的内存和cpu资源较少 2>源代码开源,完全免费 3>检索速度上十几兆、几十兆的数据库sqlite很快,但是上G的时候最慢 4>管理简单,几乎无需管理。灵巧、快速和可靠性高 5>功能简…

如何设定一个N层CNN的Layer,CNN初始化

如何设定一个N层CNN的Layer,CNN初始化 前言干货代码解释 结语 前言 目前人工智能已经融入到我们的生活,大数据模型也是层出不穷。那我们就学习一些简单的模型设置。 干货 代码 # This is the original CNN layer setup, def build_cnn(input_layer):…

Vue router深入学习

Vue router深入学习 一、单页应用程序介绍 1.概念 单页应用程序:SPA【Single Page Application】是指所有的功能都在一个html页面上实现 2.具体示例 单页应用网站: 网易云音乐 https://music.163.com/ 多页应用网站:京东 https://jd.co…

springboot打成war包及VUE打成war包放入tomcat启动

1.springboot打成war包步骤 首先在springboot启动类中继承SpringBootServletInitializer,重写configure方法,如下: SpringBootApplication() public class StartApplication extends SpringBootServletInitializer {public static void main(String[] …

Java与.Net的区别

Java 和 .NET 是两个不同的软件开发平台,它们在语言、生态系统、跨平台性和开发工具等方面有着不同的特点。 1. 语言:Java 使用 Java 编程语言,而 .NET 使用 C#、VB.NET、F# 等多种编程语言。Java 是一种面向对象的编程语言,它强…

在gen_server使用ets实例演示

Erlang的ETS(Erlang term storage)是一种在内存中存储数据的结构,类似于其他语言中的数据库。它允许你在Erlang程序中存储和检索数据。gen_server是Erlang中用于创建服务器的一种模式,它能够处理并发的客户端请求。 以下是在gen_…

大数据技术10:Flink从入门到精通

导语:前期入门Flink时,可以直接编写通过idea编写Flink程序,然后直接运行main方法,无需搭建环境。我碰到许多初次接触Flink的同学,被各种环境搭建、提交作业、复杂概念给劝退了。前期最好的入门方式就是直接上手写代码&…

[渗透测试学习] CozyHosting - HackTheBox

文章目录 信息搜集 信息搜集 nmap扫描一下,发现存在80端口和22端口 nmap -sV -sC -p- -v --min-rate 1000 10.10.11.230直接访问80端口发现有跳转 那么我们将ip添加到hosts里面,成功访问 观察发现是企业网站,扫描一下没有子域名 那么就扫…

【后端学前端】第二天 css动画 动感菜单(css变量、过渡动画、过渡延迟、js动态切换菜单)

目录 1、学习信息 2、源码 3、变量 1.1 定义变量 1.2 使用变量 1.3 calc() 函数 4、定位absolute和fixed 5、transform 和 transition,动画 5.1 变形transform 5.2 transition 5.3 动画animation 6、todo 1、学习信息 视频地址:css动画 动感菜…

【jenkins操作步骤】

一、安装ant 1、下载安装文件 1.1 进入https://ant.apache.org/ 然后点击 https://ant.apache.org/bindownload.cgi 超连接下载即可 1.2下载到本地,最好放到D盘下,然后把apache-jmeter-4.0\extras目录下的ant-jmeter-1.1.1.jar 文件放置到ant下的lib目…

Java最全面试题专题---2、Java集合容器(1)

集合容器概述 什么是集合 **集合框架:**用于存储数据的容器。 集合框架是为表示和操作集合而规定的一种统一的标准的体系结构。 任何集合框架都包含三大块内容:对外的接口、接口的实现和对集合运算的算法。 **接口:**表示集合的抽象数据类…

开箱即用的C++决策树简单实现

一个数据结构期末作业(有兴趣用的话可以高抬贵手star下⭐~)GitHub - mcxiaoxiao/c-Decision-tree: 决策树c简单实现 🌳 c-Decision-tree 附大作业/课设参考文档.doc 🌳 c-Decision-tree Introduction 🙌 c-Decision…