.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.pswp.cn/news/215178.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/215178.shtml
英文地址,請注明出處:http://en.pswp.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…