.NET C#连接PostgreSQL数据库需要使用Npgsql驱动程序。Npgsql是.NET Framework和.NET Core中的一个开源PostgreSQL驱动程序。
要使用Npgsql,需要先在项目中添加引用。可以通过NuGet包管理器来添加引用。在包管理器控制台中,搜索“Npgsql”,然后选择“安装”。
添加引用后,就可以开始连接PostgreSQL数据库了。连接数据库需要以下步骤:
创建一个NpgsqlConnection对象。
设置连接字符串。
打开连接。
连接字符串包含以下信息:
数据库服务器的地址
数据库的端口号
数据库的名称
用户名
密码
连接字符串的格式如下:
Host=<server_address>;Port=<port_number>;Database=<database_name>;Username=<username>;Password=<password>
例如,如果数据库服务器的地址是localhost,端口号是5432,数据库的名称是test,用户名是postgres,密码是123456,则连接字符串为:
Host=localhost;Port=5432;Database=test;Username=postgres;Password=123456
连接数据库的代码如下:
- using Npgsql;
-
- class Program
- {
- static void Main(string[] args)
- {
- // 创建一个NpgsqlConnection对象
- NpgsqlConnection conn = new NpgsqlConnection("Host=localhost;Port=5432;Database=test;Username=postgres;Password=123456");
-
- // 设置连接字符串
- conn.ConnectionString = "Host=localhost;Port=5432;Database=test;Username=postgres;Password=123456";
-
- // 打开连接
- try
- {
- conn.Open();
- Console.WriteLine("连接成功");
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
-
- // 关闭连接
- conn.Close();
- }
- }
-
连接成功后,就可以使用Npgsql提供的API来操作数据库了。例如,可以使用NpgsqlCommand对象来执行SQL语句。
执行SQL语句的代码如下:
- using Npgsql;
-
- class Program
- {
- static void Main(string[] args)
- {
- // 创建一个NpgsqlConnection对象
- NpgsqlConnection conn = new NpgsqlConnection("Host=localhost;Port=5432;Database=test;Username=postgres;Password=123456");
-
- // 设置连接字符串
- conn.ConnectionString = "Host=localhost;Port=5432;Database=test;Username=postgres;Password=123456";
-
- // 打开连接
- try
- {
- conn.Open();
-
- // 创建一个NpgsqlCommand对象
- NpgsqlCommand cmd = new NpgsqlCommand("SELECT * FROM users", conn);
-
- // 执行SQL语句
- NpgsqlDataReader reader = cmd.ExecuteReader();
-
- // 遍历结果集
- while (reader.Read())
- {
- // 获取结果集中的字段值
- int id = reader["id"].Value<int>();
- string name = reader["name"].Value<string>();
- int age = reader["age"].Value<int>();
-
- // 输出结果
- Console.WriteLine($"id={id}, name={name}, age={age}");
- }
-
- // 关闭连接
- conn.Close();
- }
- catch (Exception ex)
- {
- Console.WriteLine(ex.Message);
- }
- }
- }
-
以上代码将查询users表中的数据,并将结果输出到控制台。