.Net2.0连接PG数据注意事项
第一次用.net操作PG[.NET2.0]
一:Npgsql版本问题
1:如果是.net2.0 建议用2.0.11.0[NuGet搜索npgsql第一个的最低版本]
如果是.net3.5 最高只能到2.2.6
2.2.7就需要.net4了
二:SqlHelp操作
就像操作SQL Server那样操作,只是几个类换一下。
SqlConnection -> NpgsqlConnection
SqlDataAdapter -> NpgsqlDataAdapter
SqlCommand -> NpgsqlCommand
三:连接问题
错误1:
Only AuthenticationClearTextPassword and AuthenticationMD5Password supported for now. Received: 10
错误2:Authentication method not supported (Received: 10)
需要修改数据库配置文件pg_hba.conf
METHOD 那列写的 scram-sha-256,将其改为 password
如果需要允许所有IP都能访问
IPv4修改ADDRESS列为:0.0.0.0/0
IPv6修改ADDRESS列为:::0/0
四:增删改查问题
连接字符串:
Server={datasouce};User Id={user}; Password = {pwd}; Database = {database}; Port = {port}
网上有写法如下(本人没有验证):
server={datasouce};port={port};database={database};uid={user};pwd={pwd}
1:查询
当表名/列名出现了大写, sql语句需要带双引号,否则报错,下面的语句少了引号就会报错:
SELECT * FROM "DT_Lay2021"
SELECT "LayName" FROM "DT_Lay2021"
SELECT "LayName","LayMemo", "LayColor",sortid FROM "DT_Lay2021"
当表名/列名没有大写时,写法同mssql:
SELECT * FROM dt_lay
五:MSSQL数据库转PG数据
内容参考:http://www.cftea.com/c/2021/01/13133.asp